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.