$end ???

Ciao Gianni...

Grazie per l'aiuto che mi hai dato finora...

Ora provando a copiare del codice di un tutorial per l'implementazione di un guestbook, di nuovo mi sono arenato...

l'output che mi dà il browser è (per il file header che è incriminato):

Parse error: syntax error, unexpected $end in C:\Programmi\Apache Group\Apache2\htdocs\guestbook\header.php on line 198

ora, per il codice, che mi sembra di aver copiato perfettamente da un tutorial, a parte i commenti in più... Mi puoi spiegare dove è sbagliato?? Cosa significa?? Non esiste nessuna variabile end, eppure mi sembra che l'errore si trova verso la fine dello script!! 

Grazie.

allego il codice:

[allegato eliminato dall\' amministratore]

inviato 12 anni fa
ninux
X 0 X

Ciao ninux,

l'errore che hai ricevuto è di tipo "Parse error" ovvero è un errore individuato dal parser. Il parser è quella parte di PHP che effettua una lettura preliminare dello script prima di eseguirlo e, tra le diverse cose, ne controlla la sintassi (corretta chiusura delle parentesi, dei tag PHP, ecc.)

Nello specifico il parser ha trovato un errore nella sintassi dello script (syntax error), in particolare ha riscontrato la fine inaspettata dello script (unexpected $end in ... on line 198). $end è quindi per il parser il tag di chiusura "?>" che è inaspettato perché la riga 135 ( EOQ;) contiene uno spazio di troppo.

In pratica le righe 126-135 servono a stampare una stringa che viene delimitata con la tecnica Heredoc (vedi qui)

Questa tecnica prevede di chiudere una stringa ponendo un identificatore proprio all'inizio dell'ultima riga. Nel tuo script invece, alla riga 135 l'identificatore, nel tuo caso "EOQ;" è preceduto da uno spazio.

Il PHP quindi non capisce che lì finisce la stringa e considera tutto il restante codice, fino alla fine, come una stringa. Ma arriva alla fine e si trova il tag di chiusura "?>" ed è ovviamente inaspettato perché, secondo il PHP, c'è ancora una stringa che non è stata chiusa.

Morale della favola: togli lo spazio iniziale alla riga 135.

Ciao.

 EOQ;

risposto 12 anni fa
Gianni Tomasicchio
X 0 X

Grazie mille Gianni!

Come il solito sei stato prezioso, che Dio ti benedica!  :angel:

risposto 12 anni fa
ninux
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda