Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: problema heredoc <<<

  1. #1

    problema heredoc <<<

    sto provando ad utilizzare la funzione <<< EOFILE che permette di creare una stringa preservando gli invii, questo è il codice:

    <?

    $thisfile=$_SERVER['PHP_SELF'];
    $message="ciao";

    $reg_form= <<< EOREGFORM
    <form method="post" action="$thisfile">
    <table border="1" align="center">
    <caption> Inserisci Login e Password </caption>
    <tr><td> Login</td> <td> <input type="text" size=20 name="login"></td></tr>
    <tr><td> Password</td><td> <input type="password" size=20 name="password"></td></tr>
    <tr><td colspan="2"> Invia <input type="submit" value="submit"></td></tr>
    <input type=hidden name="stato" value="loginpass">
    </form>
    EOREGFORM;

    Non capisco però perchè non mi considera finita la stringa dopo EOREGFORM; infatti utilizzo scite che colora il codice e dopo quella linea tutto il resto mi rimane comunque verde come se ancora stessi continuando la stringa $reg_form, ma sbaglio qualcosa??

    inoltre lo script mi dà un errore strano, perchè mi dice parse error nell'ultima riga dello script
    qualcuno ha idea di come risolvere??
    grazie

  2. #2
    l'ultima riga non deve contenere spazi dopo il punto e virgola...

    EOREGFORM; <<--- return secco dopo il ;


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ma come va bene il server oggi ... doppione.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    purtroppo non funziona lo stesso; ecco l'intero script e l'errore che mi dà
    <?

    $thisfile=$_SERVER['PHP_SELF'];
    $message="ciao";
    $reg_form= <<< EOREGFORM
    <form method="post" action="$thisfile">
    <table border="1" align="center">
    <caption> Inserisci Login e Password </caption>
    <tr><td> Login</td> <td> <input type="text" size=20 name="login"></td></tr>
    <tr><td> Password</td><td> <input type="password" size=20 name="password"></td></tr>
    <tr><td colspan="2"> Invia <input type="submit" value="submit"></td></tr>
    <input type=hidden name="stato" value="loginpass">
    </form>
    EOREGFORM>>;

    $cambio_form= <<< EOCAMBIO
    <form method="post" action="$thisfile">
    <table border=1 align="center">
    <caption> Inserisci Login e Password </caption>
    <tr><td> Login</td> <td> <input type=text size=20 name=login></td></tr>
    <tr><td> Password</td><td> <input type=password size=20 name=password></td></tr>
    <tr><td colspan="2"> Invia <input type="submit" value="submit"></td></tr>
    <input type=hidden name="stato" value="cambiopass">
    </form>
    EOCAMBIO;


    if (!$_POST['submit']) $message=$reg_form;
    ?>


    <html>
    <body>
    <? echo $message?>
    </body>
    </html>

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\programmi\easyphp1-8\www\phpself.php on line 28

    di rosso è colorata la linea con l'errore, ma il problema penso che non sia quello infatti come già detto dopo l'apertura di <<< mi rimane tutto di verde come se non chiudesse nonostante io chiudo.

  5. #5
    Cambi le carte in tavola...

    EOREGFORM>>;

    togli quei due >> cosi... come avevi postato prima.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    infatti quei due >> non ci sono stavo soltanto provando, ma comunque l'errore rimane, ma non è che per funzionare si deve abilitare qualcosa nel file php.ini??

  7. #7
    non devi settare nulla per usare heredoc.

    L'errore non nasce nella parte di script che hai postato.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    ma questo è tutto il mio script non c'è niente dopo

  9. #9
    Originariamente inviato da pippuzzo80
    ma questo è tutto il mio script non c'è niente dopo
    ho ripreso il tuo script e provato sul mio pc. non ci sono errori e funziona a parte i due >> segni maggiore, e un notice che viene qui:

    if (!$_POST['submit']) $message=$reg_form;

    perche' $_POST['submit'] non esiste.

    dovresti mettere:

    if (!isset($_POST['submit']))

    Potrebbe essere che non hai abilitato gli short tags nel php.ini. Prova a mettere

    <?php invece di <?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    ma come a te funziona??

    allora perchè a me non funziona con easyphp...

    non è la prima volta che programmo in php e utilizzando <? o <?php funziona comunque

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.