Rechercher :
Accueil » Erreurs Connexion

Question Quelles sont les erreurs PHP courantes ?
Réponse Avant de poser votre question sur le forum, cherchez à comprendre vos erreurs de script. Tout le monde y gagnera et vous progresserez efficacement en php.
Les messages d'erreurs sont souvent explicite, il suffit d'apprendre à les lire.

Voilà quelques erreurs courantes et la méthode pour les comprendre, extrait du site phpdebutant.org. Vous pouvez vous y reporter pour approfondir tout cela.

>>> Les erreurs courantes

L'erreur la plus courante, mais aussi la facile à corriger, est la "parse error on line x". Il s'agit d'une erreur de syntaxe. Lorsque cette erreur se produit, il se peut que vous ayez oublié un ; a la fin d'une instruction par exemple, des mélanges entre simple quote ' et double quote " ou bien un oubli de ) ou de }. Sachez aussi que l'erreur peut se produire à la ligne x qu'indique php, ou bien avant, mais jamais après. Une solution pour évitez ce genre d'erreur est d'utiliser un editeur de texte qui propose la coloration syntaxique. Bien souvent cela vous permettra de detecter des erreurs de syntaxe.

Les erreurs dues à des requetes vers mysql sont aussi très fréquentes. Pour comprendre d'où vient l'erreur, l'astuce primordiale est de tester ses requetes. Voici un exemple pour tester ses requetes (merci Perrich !) :

Code:
<?
$requete = "SELECT * FROM matable WHERE champ='toto'";
$query = mysql_query($requete) or die ('ERREUR '.$requete.' '.mysql_error());
?>
La fonction mysql_error() renvoie une description de l'erreur précisant par exemple qu'aucune table n'a été séléctionnée. N'hésitez pas à utiliser cette astuces a CHAQUE requete, vous gagnerez du temps par la suite a debugger.

Une autre erreur assez courante est celle-ci 'Header already sent...'. Cela signifie que du texte a déjà été envoyé avant l'envoi des entêtes http par le serveur. Les fonction concernées par l'envoi d'headers sont session_start(), setcookie() et bien evidemment header(). Par conséquent, avant ces fonctions, il ne faut aucun affichage de texte, c'est à dire aucun appel à la fonction echo par exemple.

Si vous ne trouvez toujours pas l'erreur, n'hesitez pas à vérifier le contenu de vos variables tout au long du scripts. Pour cela, un simple echo $variable; suffit. Si la variable ne contient pas ce que vous souhaiter, alors reverifier le code avant le echo, l'erreur est avant. Si la variable contient ce que vous voulez, alors effacer cettte instruction et refaite un echo un peu plus loin. Au fur et a mesure vous trouverez l'endroit qui ne va pas et vous pourrez corriger.

Pensez aussi à tester vos structures conditionnelles. En faisant des echo à l'interieur, selon vous saurez si oui ou non php est rentré à l'interieur d'un boucle ou si la condition est vérifiée ou non.

Auteur : xaglo Mise à jour le 15/01/2004

Retour