Erreurs Communes de PHP

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

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.


Online: 595 users browsing the articles directory