Erreurs Communes de PHP
Dans ce cours d'instruction, nous allons regarder
certaines des erreurs communes de PHP qui se produisent et de la
façon les résoudre.
Analysez Les Erreurs
Une erreur d'analyse se produit quand le format de
votre code de PHP est incorrect. Par exemple, le code suivant :
< ?php for($i=1;$i<10;$i++){$output = "Itération
Courante : ". $i. "< Br >" écho #
; } ? >
renverra une erreur semblable à ce qui suit :
Analysez l'erreur : analysez l'erreur, T_ECHO
inattendu dans c:\webserver\test2.php sur la ligne 4
Ce message d'erreur est montré parce qu'il y a un
point-virgule absent à l'extrémité de la troisième ligne de
l'exemple précédent. Le message vous indique que PHP ne
s'attendait pas à la commande d'écho sur la ligne 4. C'est
parce qu'il a compté là être un point-virgule à la fin de la ligne
3. La majeure partie du moment où vous obtenez cette erreur, la
raison sera un problème avec la ligne précédente, telle que le
point-virgule absent comme dans l'exemple précédent.
Cette erreur se produit également avec des croisillons,
{}, par exemple avec le code suivant :
< ?php for($i=1;$i<10;$i++){$output = "Itération
Courante : ". $i. "< Br >" ; l'écho de
if($output==5){"ceci est la cinquième itération" ; }}} ? >
ce qui renverra le message d'erreur
Analysez l'erreur : analysez l'erreur,
inattendue ‘}’ dans c:\webserver\test2.php sur
la ligne 8
Ceci est provoqué par un croisillon
supplémentaire de fermeture,}, sur la ligne 8. Bien qu'il soit
simple de voir le problème dans le bloc court précédent de code, il
peut être beaucoup plus dur avec le code compliqué contenant
beaucoup les boucles nichées ou si les rapports, et lui est dur pour
assortir les croisillons d'ouverture aux croisillons de fermeture.
Pour trouver rapidement le problème, vous pouvez employer
les croisillons d'équilibre de MX de
Dreamweaver commandez, qui est dans le menu d'édition. Vous
pouvez placer le curseur à une ligne de code, choisissez la commande de croisillons d'équilibre, et elle accentuera toutes les lignes de
code pour ce bloc du croisillon d'ouverture au croisillon de
fermeture. En vérifiant les couches de votre code avec l'équilibre les croisillons commandent,
vous pouvez rapidement trouver où il y a un croisillon absent ou
supplémentaire.
Index ou variable non défini
Cette section explique quoi faire si vous recevez
un message sur votre page Web comme un de ce qui suit :
|
Avertissement |
Index non défini : action dans
\home\www\login.php sur la ligne 25 |
|
Avertissement |
Variable non définie : message dans
home\www\login.php sur la ligne 52 |
Ces messages confondent fréquemment des
personnes, car ils ressemblent aux messages d'erreur et peuvent se
produire même avec le code qui fonctionne parfaitement. Les
messages ne sont pas réellement des erreurs ; au lieu de cela,
ils sont classés en tant que "notices," qui vous alertent aux
situations où il n'y a pas réellement une erreur qui arrêterait le
code de travailler. Ce que le message indique vous est que le
variable mentionné n'a pas été spécifiquement défini en utilisant
un rapport de variété de PHP.
Comme exemple, regardez les deux blocs suivants de code :
< ?php variété # ; $username =
# '] ; ? > et :
< ?php $username = # '] ;
? >
Les deux blocs de code ont des résultats identiques, mais
le deuxième bloc de code évoquera un message semblable à celui
montré précédemment, parce que nous n'avons pas spécifiquement
défini le variable #. PHP fonctionne à
côté de définir vos variables d'abord, que les moyens il peuvent
vous alerter si vous mal épelez une variable en votre code, car la
variable sera nouvelle et pas précédemment définie.
Il y a deux solutions à ce problème. Le premier
doit passer en arrière par votre code et s'assurer que chaque
variable est spécifiquement définie. La deuxième option doit
arrêter des notices d'être montré, car elles sont souvent plus
d'ennui qu'elles sont valeur. Vous pouvez faire ceci en ajoutant
le code suivant au dessus de chaque page qui a l'erreur :
< ?php error_reporting (E_ALL et ~ E_NOTICE) ; ? >
Ceci indique PHP montrer tous les messages et
avertissements d'erreur mais ne pas montrer les notices. Pour
faire ceci de manière permanente, changez le réglage error_reporting
dans votre dossier de php.ini en réglage précédant.
Les En-têtes Ont déjà envoyé Des Erreurs
C'est un autre message d'erreur qui se produit
fréquemment, particulièrement en utilisant des biscuits ou des
sessions, et il est semblable au message suivant :
Ne peut pas modifier l'information d'en-tête - en-têtes
déjà envoyés près (rendement commencé à /home/web/newtest.php:3)
dans /home/web/test.php sur la ligne 5
Le problème est provoqué par les espaces vides
avant la fonction d'en-tête. La fonction d'en-tête de PHP est
employée pour réorienter l'utilisateur à une autre page, qu'elle
fait en envoyant des commandes dans l'en-tête de page au navigateur,
l'indiquant aller à la nouvelle page. Cependant, une fois qu'un
en-tête a été envoyé au navigateur, vous pouvez plus n'employer
les fonctions qui accèdent à l'en-tête, tel que la fonction
d'en-tête. Si quelque chose est envoyé au navigateur qui n'est
pas une fonction spéciale d'en-tête, l'en-tête est fermé et tout
on assume qu'autrement est HTML pour la page Web. Est-ce
qu'ainsi pourquoi ce se produire est avec le code précédent ?
Le problème se produit parce qu'il y a un interligne
(ligne 2) qui est envoyée au navigateur. Ceci cause l'en-tête
d'être fermé, ainsi la fonction d'en-tête échoue, car elle peut
plus n'écrire à l'en-tête. Cependant, même si vous enlevez
l'interligne à la ligne 2, vous recevrez le même message d'erreur.
C'est parce qu'il y a les deux espaces à la fin du ? >
étiquette sur la ligne 1. Ceux-ci doivent également
être supprimés, car encore ils seront envoyés au navigateur et
fermeront l'en-tête. Il peut être difficiles de repèrer ces
espaces à la fin des lignes parce qu'ils sont invisibles !
Il y a une méthode que vous pouvez employer, bien que,
pour faire les trouver plus faciles. Si vous placez votre
curseur à la fin de chaque ligne et left-clic et déplacez la
droite de souris, tous les espaces à l'extrémité de la ligne seront
accentués, comme montré dans le projectile précédent d'écran.
Les espaces peuvent alors être enlevés.
Si le code est maintenant examiné encore, il devrait
fonctionner correctement.
Cette erreur peut également se produire si on en produit
non inclus dans des étiquettes de PHP dans incluent des dossiers pour
la page. Ainsi si votre code principal de page regarde très
bien et vous obtenez toujours l'erreur, la prochaine étape en sera de
vérifier par incluent des dossiers les utilisations de page.
Souvent, l'erreur est provoquée par une nouvelle ligne après
que l'étiquette finale de PHP dans le dossier d'inclure, qui doit
être enlevé si présent.
c'est un article supplémentaire par stratus Huo Quan
Déni : Notre site Web n'est pas
responsable de l'information contenue par cet article. Cet
article reflète nullement les vues, les avis, les pensées ou la
croyance du personnel d'annuaire d'articles.
Notification de traduction : Erreurs
communes de l'article les "PHP" ont été traduites en utilisant un
service de traduction automatisé. Nous faisons des excuses
sincèrement pour toutes les erreurs de traduction qui se sont
produites. Merci de l'arrangement.