Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [eredoc] Mi spiegate perchè non funziona?

    Ciao a tutti,

    siccome devo inserire del codice html in uno script per comodità vorrei usare la sintassi eredoc ma ho un problema, la cosa che vorrei scrivere e poi stampare è la seguente variabile:

    Codice PHP:
    $html = <<<html 
    <form id="prova_form" name="prova_form" method="post" action="iscrizione.php"
    <
    table width="500" border="0"
    <
    tr> <td width="128">Username</td> <td width="362"><label for="nome_utente"></label> <input name="nome_utente" type="text" id="nome_utente" tabindex="1" value="" /></td> </tr
    <
    tr> <td>Password</td> <td><label for="parola_chiave"></label> <input name="parola_chiave" type="password" id="parola_chiave" tabindex="2" value="" /></td> </tr
    <
    tr> <td>Email</td> <td><label for="email"></label> <input name="email" type="text" id="email" tabindex="3" value="" /></td> </tr
    <
    tr> <td></td> <td><input type="submit" name="invia" id="invia" value="Invia" /></td> </tr> </table> </form
    html
    quando vado ad eseguire lo script ho questo errore:

    Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\PHP\iscrizione\iscrizione.php on line 72

    la riga 72 è </html>
    ?>
    </body>
    </html>

    sapete dirmi quale errore commetto?

    la sintassi come viene spiegata su php.net mi pare esatta.

    spero possiate aiutarmi.
    grazie

  2. #2
    Utente di HTML.it L'avatar di Laxus
    Registrato dal
    Oct 2010
    Messaggi
    251
    potrebbe essere lo spazio che c'è dopo <<<html? prova a toglierlo

  3. #3
    no non è quello il problema.

  4. #4

    Re: [eredoc] Mi spiegate perchè non funziona?

    Originariamente inviato da alfonsovincenzo


    la riga 72 è </html>
    ?>
    </body>
    </html>
    Come dice l'errore c'è un end (del codice php) mentre si attendeva qualcos'altro.

    Immagino che il tuo codice debba essere qualcosa di questo tipo
    Codice PHP:
     </html>
    html;
    ?>
    </body>
    </html> 
    ma non è detto, dipende da come hai messo il codice ovvero se hai usato il metodo eredoc o no e da come lo hai usato.
    Il pezzo di codice che hai postato, relativo alla riga di errore, è poco significativa messa così, devi essere pù preciso.


  5. #5
    riposto maggior quantità di codice:
    Codice PHP:
    <?php
    echo "Attenzione! Non hai inserito tutti i campi richiesti.

                        Per favore compila nuovamente il modulo"
    ;
                
    $html = <<<html
                        <form id="prova_form" name="prova_form" method="post" action="iscrizione.php">//questa è la riga 42
                          <table width="500" border="0">
                            <tr>
                              <td width="128">Username</td>
                              <td width="362"><label for="nome_utente"></label>
                              <input name="nome_utente" type="text" id="nome_utente" tabindex="1" value="" /></td>
                            </tr>
                            <tr>
                              <td>Password</td>
                              <td><label for="parola_chiave"></label>
                              <input name="parola_chiave" type="password" id="parola_chiave" tabindex="2" value="" /></td>
                            </tr>
                            <tr>
                              <td>Email</td>
                              <td><label for="email"></label>
                              <input name="email" type="text" id="email" tabindex="3" value="" /></td>
                            </tr>
                            <tr>
                              <td></td>
                              <td><input type="submit" name="invia" id="invia" value="Invia" /></td>
                            </tr>
                          </table>
                        </form>
                        html;
                        }

    ?>
    </body>
    </html>//questa è la riga 72
    dreamweaver mi segnala un errore alla riga 42,
    se eseguo la pagina ho questo errore:

    Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\PHP\iscrizione\iscrizione.php on line 72

    non capisco

  6. #6
    cos'è quella graffa alla fine?

  7. #7
    La chiusura di <<html deve essere a inizio riga...inoltre appunto c'è la graffa di troppo

  8. #8
    oltre alla graffa che non dovrebbe esserci a meno che non ci sia qualcosa di aperto prima del blocco <?php dove stampi $html ?

  9. #9
    in ogni caso forse faresti prima a imparare (ammesso che tu non la conosca già) la tecnica per uscire dal php e rientrare.
    In pratica qui Escaping from html

  10. #10
    Originariamente inviato da variabile
    in ogni caso forse faresti prima a imparare (ammesso che tu non la conosca già) la tecnica per uscire dal php e rientrare.
    In pratica qui Escaping from html
    Ti prego, non farlo. Non perchè sia sbagliato, capiamoci, ma perchè è una tecnica molto confusionaria che ti obbliga a mescolare codice php con codice html/javascript e rende difficile la lettura e il debug del codice.
    Piuttosto, impara bene l'uso del eredoc che poi ti tornerà utilissimo quando passerai alle classi


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.