Erreurs Critiques
Une erreur critique est très handicapante, car tant qu'elle ne sera pas résolue, rien ne s'affichera. Elle a donc tendance à provoquer une grosse panique chez les utilisateurs. Ne vous en faites pas, elle se résoud très bien
Voici une liste des erreurs critiques les plus fréquentes :
----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: parse error in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP.SOLUTION : Celle-ci est difficile à réparer par un débutant. En règle général, ce qu'il faut savoir est que la ligne indiquée est fausse. En général, l'erreur est juste au dessus. Une parse error peut être provoquée par un oubli du ; un "{" sans "}", ou un "(" sans ")". Il faut donc vérifier tout cela et essayer de rêgler le problème, en général, lors de l'installation d'un MOD, un ) effacé etc.----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: parse error, unexpected ',' in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP. Pour être plus précis, une "," qui ne devrait pas se trouver là.SOLUTION : Cette erreur arrive souvent quand on insère un bout de MOD dans une requete SQL. Il faut donc s'assurer que toutes les virgules sont entre deux ". Le moyen le plus simple est une colorisation syntaxique du code, qui vous montrera vite l'endroit en question.----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP. Pour être plus précis, une chaine de caractères ne se trouvant pas entre les signes " ou ' qui ne devrait pas se trouver là.SOLUTION : Cette erreur arrive souvent quand on insère un bout de MOD dans une requête SQL. Il faut donc s'assurer que toutes les chaines de caractères se trouvent entre des quotes (" ou '). La encore, la colorisation est un bon outil. Les seules choses pouvant être à l'extérieur des quotes sont les variables (qui commencent par $), les fonctions (qui se terminent par () ) et les constantes (qui sont écrites en majuscules et définies dans constants.php). Revérifiez soigneusement le code aux alentours de cette zone. C'est une des rares parse errors où la ligne affichée est bien la ligne où se trouve l'erreur.----------------------------------------------------------------
- Code: Tout sélectionner
Fatal error: Call to undefined function: nom_fonction() in fichier.php on line XX
CAUSE : Cette erreur est provoquée lors d'un appel à une fonction qui n'existe pas.SOLUTION : Vous avez surement oublier de modifier un fichier où la fonction devait être incluse. Cherchez cette fonction dans le fichier d'installation du MOD pour voir dans quel fichier elle est déclarée, puis essayez de voir si vous l'avez dans votre fichier. Si elle est dans le fichier, peut être avez vous rater une ligne de type "include('mon_fichier_contenant_mes_fonctions');" qui empêche la déclaration de la fonction.
Dernier cas rare : la fonction est dans le fichier, l'include fonctionne et ne déclenche pas de warning, mais la fonction n'est pas déclaré : votre fichier a eu une erreur de transfert et ne fait pas la bonne taille sur le serveur, d'où l'absence de la fonction.NOTE : une déclaration de fonction ressemble à ceci :- Code: Tout sélectionner
function nom_fonction()
{
//plein de code
}
----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: syntax error, unexpected $end in fichier.php on line XX
CAUSE : Cette erreur indique que PHP a été fermé (avec ?> donc) de façon anormale.SOLUTION : Vérifiez si vous n'avez pas oublié un ; à la dernière ligne juste avant le ?>. Sinon, il va falloir équilibrer pour trouver l'erreur, car un { a été ouvert sans être fermé (par un }). Vous allez donc devoir compter les { et voir s'il y en a autant que de }. Soyez prudent dans les endroits que vous avez modifiés.----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: syntax error, unexpected T_VARIABLE, expecting T_WHILE in fichier.php on line XX
CAUSE : Cette erreur indique qu'un do while n'a pas été écris correctement.SOLUTION : Vérifiez l'ordre des { } car c'est souvent de là que ça vient. La syntaxe exacte du do while est :- Code: Tout sélectionner
do
{
}while();
----------------------------------------------------------------
- Code: Tout sélectionner
Fatal error: Cannot redeclare nom_fonction() (previously declared in fichier.php:XX) in fichier on line XX
CAUSE : Cette erreur indique qu'une fonction a été déclarée 2 fois. Elle indique aussi que c'est dans le même fichier et à la même ligne (enfin, en général
)SOLUTION : Vous avez mis 2 fois la ligne de l'include. Si ce n'est pas le cas, le MOD ne fonctionne pas correctement ou est mal conçu. Mais vous pouvez l'améliorer sans soucis en remplaçant include('fichier'.$ext) par include_once('fichier'.$ext) Cela fera disparaître le problème.NOTE : dans certains cas, au lieu d'include, il est écris require, mais cela fonctionne pareil : require_once.----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: syntax error, unexpected T_ELSE in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP. En fait, il y a un else mal placé.
Par exemple :- Code: Tout sélectionner
if()
{
else
{
}
SOLUTION : Il se peut que ce soit comme sur l'exemple, un } oublié. Ou alors, le else traine n'importe où sans if avant. La syntaxe exacte du if else est :- Code: Tout sélectionner
if()
{
}
else
{
}
----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: syntax error, unexpected T_BOOLEAN_OR in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP. En fait, il y a un booleen mal placé dans une expression.
Par exemple :- Code: Tout sélectionner
if(empty($bidule) OR empty($truc)
SOLUTION : Il se peut que ce soit comme sur l'exemple, un ) oublié. Ou alors, le booleen traine n'importe où. Dans tout les cas, la solution devrait vous sauter aux yeux rapidement.----------------------------------------------------------------
- Code: Tout sélectionner
Parse error: syntax error, unexpected '.' in fichier.php on line XX
CAUSE : Cette erreur est provoquée par une mauvaise syntaxe dans le fichier PHP. En fait, il y a une concaténation (bon, c'est vrai, un mot savant à la con, bon, il manque un . en fait) qui est très mal placé. Une concaténation ne peut être mis que entre deux variables (les trucs qui ont un $ au début) ou entre deux chaines de caractères (les trucs entre quote, avec des ' ou des " au début et à la fin) .
Par exemple (provoquera l'erreur) :- Code: Tout sélectionner
'(du blabblab'.$variable . );
SOLUTION : En général, ajouté un ' ou un " juste après le . permet de résoudre le problème.