Les erreurs les plus courantes



Je pense qu'il est facile de parler d'erreurs « courantes », car vous verrez que certaines erreurs reviennent plus souvent que d'autres.

Nous allons passer en revue les erreurs suivantes :

  • Parse error ;
  • Undefined function ;
  • Wrong parameter count.

Parse error


Si on devait dire qu'il existe UNE erreur de base, ça serait très certainement celle-là. Impossible de programmer en PHP sans y avoir droit un jour.
Le message d'erreur que vous obtenez ressemble à celui-ci :

Parse error: parse error in fichier.php on line 15


Ce message vous indique une erreur dans fichier.php à la ligne 15. Généralement, cela veut dire que votre problème se situe à la ligne 15, mais ce n'est pas toujours le cas (trop facile, sinon). Parfois c'est la ligne précédente qui a un problème : pensez donc à regarder autour de la ligne indiquée.


Avec un éditeur de texte spécialisé comme Notepad++, vous avez les numéros de ligne sur votre gauche, comme sur la figure suivante.



Numérotation des lignes dans Notepad++



Bon, concrètement, qu'est-ce qu'une parse error ? Une « parse error » est en fait une instruction PHP mal formée. Il peut y avoir plusieurs causes :

  • Vous avez oublié le point-virgule à la fin de l'instruction. Comme toutes les instructions doivent se terminer par un point-virgule, si vous oubliez d'en mettre un, ça provoquera une parse error. Par exemple :

$id_news = 5

… génèrera une parse error. Si vous mettez le point-virgule à la fin, tout rentrera dans l'ordre !

$id_news = 5;


 Vous avez oublié de fermer un guillemet (ou une apostrophe, ou une parenthèse). Par exemple :

echo "Bonjour !;

… il suffit de fermer correctement les guillemets et vous n'aurez plus de problème :

echo "Bonjour !";


 Vous vous êtes trompés dans la concaténation, vous avez peut-être oublié un point :

echo "J'ai " . $age " ans";

Une fois l'erreur corrigée, ça donne :

echo "J'ai " . $age . " ans";


 Il peut aussi s'agir d'une accolade mal fermée (pour un if, par exemple). Vérifiez que vous avez correctement fermé toutes vos accolades. Si vous oubliez d'en fermer une, il est probable que la parse error vous indique que l'erreur se trouve à la dernière ligne du fichier (c'est-à-dire à la ligne 115 si votre fichier comporte 115 lignes).


Donc, si on vous indique une erreur à la dernière ligne, il va probablement falloir relire tout le fichier PHP à la recherche d'une accolade mal fermée !

Si on vous dit que l'erreur est à la ligne 15 et que vous ne voyez vraiment pas d'erreur à cette ligne, n'hésitez pas à chercher l'erreur à la ligne juste au-dessus, elle s'y trouve peut-être !


Undefined function

Une autre erreur assez classique : la fonction inconnue. Vous obtenez ce message d'erreur :

Fatal Error: Call to undefined function: fonction_inconnue() in fichier.php on line 27


Là, il faut comprendre que vous avez utilisé une fonction qui n'existe pas.


Deux possibilités :

  • soit la fonction n'existe vraiment pas. Vous avez probablement fait une faute de frappe, vérifiez si une fonction à l'orthographe similaire existe ;
  • soit la fonction existe vraiment, mais PHP ne la reconnaît pas. C'est parce que cette fonction se trouve dans une extension de PHP que vous n'avez pas activée. Par exemple, si vous essayez d'utiliser la fonction imagepng alors que vous n'avez pas activé la bibliothèque GD pour les images en PHP, on vous dira que la fonction n'existe pas. Activez la bibliothèque qui utilise la fonction et tout sera réglé.


Une dernière chose : il se peut aussi que vous essayiez d'utiliser une fonction qui n'est pas disponible dans la version de PHP que vous avez.
Vérifiez dans le manuel dans quelles versions de PHP cette fonction est disponible.


Wrong parameter count

Si vous utilisez mal une fonction, vous aurez cette erreur :

Warning: Wrong parameter count for fonction() in fichier.php on line 112


Cela signifie que vous avez oublié des paramètres pour la fonction, ou même que vous en avez trop mis.


Comme je vous l'ai appris dans le chapitre sur la doc' PHP, consultez le mode d'emploi de la fonction pour savoir combien de paramètres elle prend et quels sont ceux qui sont facultatifs.

Par exemple, la fonction fopen requiert au minimum deux paramètres : le premier pour le nom du fichier à ouvrir et le second pour le mode d'ouverture (en lecture seule, écriture, etc.). Si vous ne mettez que le nom du fichier à ouvrir, comme ceci :

$fichier = fopen("fichier.txt");

… vous aurez l'erreur « Wrong parameter count ». Pensez donc à rajouter le paramètre qui manque, par exemple comme ceci :

$fichier = fopen("fichier.txt", "r");

Dans les versions actuelles de PHP, le message d'erreur vous donne même le nombre de paramètres que vous avez oubliés !

Créé avec HelpNDoc Personal Edition: Mettez à niveau vos fichiers d'aide et votre flux de travail avec la conversion WinHelp HLP vers CHM de HelpNDoc