Errori Comuni di PHP

In questa lezione privata, stiamo andando guardare alcuna degli errori comuni di PHP che accadono e di come risolverli.

Analizzi Gli Errori

Un errore di analizz accade quando la disposizione del vostro codice di PHP è errata. Per esempio, il seguente codice:

<?php for($i=1;$i<10;$i++){$output = "Ripetizione 
Corrente: ". $i. "< Br >" eco #; 
}? >  

restituirà un errore simile a quanto segue:

Analizzi l'errore: analizzi l'errore, T_ECHO inatteso in c:\webserver\test2.php in linea 4

  

Questo messaggio di errore è indicato perché ci è un punto e virgola mancante all'estremità della terza linea dell'esempio preceding. Il messaggio vi dice che PHP non stesse prevedendo l'ordine di eco in linea 4. Ciò è perché ha pensato là essere un punto e virgola all'estremità della linea 3. La maggior parte del tempo quando ottenete questo errore, il motivo saranno un problema con la linea precedente, quale il punto e virgola mancante come nell'esempio precedente.

Questo errore inoltre si presenta con i sostegni, {}, per esempio con il seguente codice:

<?php for($i=1;$i<10;$i++){$output = "Ripetizione 
Corrente: ". $i. "< Br >"; l'eco di 
if($output==5){"questo è la quinta ripetizione"; }}}? >  

quale restituirà il messaggio di errore

Analizzi l'errore: analizzi l'errore, inatteso ‘}’ in c:\webserver\test2.php in linea 8

Ciò è causata da un sostegno di chiusura supplementare,}, in linea 8. Anche se è semplice da vedere il problema nel blocco corto preceding del codice, può essere molto più duro con il codice complicato che contiene molti cicli annidati o se le dichiarazione ed esso è duri da abbinare i sostegni di apertura ai sostegni di chiusura.

Trovare rapidamente il problema, potete usare i sostegni dell'equilibrio del MX di Dreamweaver comandate, che sono nel menu di pubblicazione. Potete disporre il cursore ad una linea del codice, selezionate l'ordine dei sostegni dell'equilibrio ed evidenzierà tutte le linee del codice per quel blocco dal sostegno di apertura al sostegno di chiusura. Controllando gli strati del vostro codice con l'equilibrio i sostegni comandano, potete trovare rapidamente dove ci è un sostegno mancante o supplementare.

Indice o variabile non definito

Questa sezione spiega che cosa fare se ricevete un messaggio sul vostro Web page come uno di quanto segue:

Avvertimento 

Indice non definito: azione in \home\www\login.php in linea 25

Avvertimento 

Variabile non definita: messaggio in home\www\login.php in linea 52

Questi messaggi confondono frequentemente la gente, poichè assomigliano ai messaggi di errore e possono accadere anche con il codice che funziona perfettamente. I messaggi non sono realmente errori; invece, sono classificati come "avvisi," che li avvisano alle situazioni dove ci non è realmente un errore che abbia arrestato il codice dal funzionamento. A che cosa il messaggio dice siete che il variabile accennato specificamente non è stato definito usando una dichiarazione di PHP varietà.

Come esempio, guardi i seguenti due blocchi del codice:

<?php varietà #; $username = # 
']; ? > e: 
<?php $username = # ']; 
? >  

Entrambi i blocchi del codice hanno risultati identici, ma il secondo blocco del codice porterà in su un messaggio simile a quei indicati precedentemente, perché specificamente non abbiamo definito il variabile #. PHP funziona definendo le vostre variabili in primo luogo, che i mezzi esso possono avvisarli se sbagliate l'ortografia di una variabile nel vostro codice, poichè la variabile sarà nuova e non precedentemente definita.

Ci sono due soluzioni a questo problema. Il primo deve passare indietro con il vostro codice ed assicurarsi che ogni variabile specificamente è definita. La seconda opzione deve arrestare gli avvisi dalla visualizzazione, poichè sono spesso più difficoltà che sono valore. Potete fare questo aggiungendo il seguente codice alla parte superiore di ogni pagina che ha l'errore:

<?php che error_reporting (E_ALL & ~ E_NOTICE); ? >  

Ciò dice a PHP di mostrare tutti i messaggi ed avvertimenti di errore ma di non mostrare gli avvisi. Per fare permanente questo, cambi la regolazione error_reporting nella vostra lima di php.ini alla regolazione precedente.

Le Intestazioni Già Hanno trasmesso Gli Errori

Ciò è un altro messaggio di errore che accade frequentemente, particolarmente quando usando i biscotti o le sessioni ed è simile al seguente messaggio:

Non può modificare le informazioni di intestazione - intestazioni già trasmesse vicino (uscita iniziata a /home/web/newtest.php:3) in /home/web/test.php in linea 5

Il problema è causato dagli spazi in bianco prima della funzione dell'intestazione. La funzione dell'intestazione di PHP è usata per riorientare l'utente ad un'altra pagina, che fa trasmettendo gli ordini nell'intestazione della pagina al browser, dicentegli di andare alla nuova pagina. Tuttavia, una volta che un'intestazione è stata trasmessa al browser, potete più non usare le funzioni che accedano all'intestazione, quale la funzione dell'intestazione. Piuttosto è trasmesso al browser che non è una funzione speciale dell'intestazione, l'intestazione è chiusa e tutto altrimenti è presupposto per essere HTML per il Web page. Così perchè è questo accadere con il codice preceding?

Il problema accade perché ci è una linea in bianco (linea 2) che è trasmessa al browser. Ciò induce l'intestazione ad essere chiusa, in modo da la funzione dell'intestazione viene a mancare, poichè può più non scrivere all'intestazione. Tuttavia, anche se rimuovete la linea in bianco alla linea 2, otterrete lo stesso messaggio di errore. Ciò è perché ci sono due spazi alla conclusione del? > modifica in linea 1. Questi devono anche essere cancellati, poichè ancora saranno trasmesse al browser e chiuderanno l'intestazione. Questi spazi all'estremità delle linee possono essere duri da macchiare perché sono invisibili!

Ci è un metodo che potete usare, benchè, fare l'individuazione loro più facili. Se disponete il vostro cursore alla conclusione di ogni linea e di sinistra-scatto e spostate la destra del mouse, tutti gli spazi all'estremità della linea saranno evidenziati, come indicato nel colpo precedente dello schermo. Gli spazi possono allora essere rimossi.

Se il codice ora è esaminato ancora, dovrebbe funzionare correttamente.

Questo errore può anche accadere se è prodotto non incluso nelle modifiche di PHP in c'è ne include le lime per la pagina. Così se il vostro codice principale della pagina osserva benissimo ed ancora state ottenendo l'errore, il punto seguente sarà controllare con c'è ne include le lime gli usi della pagina. Spesso, l'errore è causato da una nuova linea dopo che la modifica finale di PHP nella lima di includ, che deve essere rimossa se presente.

ciò è un articolo aggiunto da Stratus Huo Quan


Diniego: Il nostro Web site non è responsabile delle informazioni contenute da questo articolo. Questo articolo in nessun modo riflette le viste, le opinioni, i pensieri o la credenza del personale dell'indice degli articoli.

Avviso di traduzione: Gli errori comuni dell'articolo "PHP" sono stati tradotti usando un servizio di traduzione automatizzato. Chiediamo scusa francamente per tutti gli errori di traduzione che hanno accaduto. Grazie per capire.

Online: 478 users browsing the articles directory