
| auteur : Forum PHP |
Les "parse error" sont des erreurs de syntaxe. Ces erreurs sont celles rencontrées le plus frequement, mais grâce au gestionnaire d'erreur par défaut de PHP, il est facile de trouver le problème et de le corriger. En effet, le message d'erreur indique toujours dans quel fichier et à quel ligne se trouve le problème.
Étant donné que l'erreur "parse error" intervient au moment où le fichier est lu ligne par ligne, cela signifie que l'erreur se trouve obligatoirement sur la ligne indiquée ou avant. Le code suivant la ligne indiquée n'a pas encore été lu donc vous n'avez pas besoin de l'analyser. Cela ne veut pas dire que le reste du code ne contient pas d'erreur mais que l'erreur indiquée ne se corrige pas en modifiant la fin du code.
Le message d'erreur peut prendre plusieurs formes. Voici quelque exemples :
1)
Parse error: parse error, expecting `','' or `';'' in /var/www/html/bug.php on line 3 |
Ouvrons le fichier "bug.php"
1 <?php
2 echo 'Hier';
3 echo 'Aujourd'hui';
4 echo 'Demain';
5 ?> |
2)
Parse error: parse error, ... in /var/www/html/bug2.php on line 3 |
Le fichier bug2.php :
1 <?php
2 echo 'Aujourd\'hui'
3 echo 'Demain';
4 ?> |
Cette fois ci, la ligne 3 n'a pas de problème donc comme indiqué précédemment, le problème doit se trouver avant dans le fichier. Nous voyons là qu'il manque un point-virgule à la fin de la ligne 2 et cela résoud le problème.
3)
Parse error: parse error in /var/www/html/bug3.php on line 11 |
Le fichier bug3.php : 1 <?php
2
3 for ($i = 1; $i < 20; $i++) {
4 if (($i % 2) == 1) {
5 echo "$i est impair<br/>";
6 } else {
7 echo "$i est pair<br/>";
8 }
9
10
11 ?> |
Cette fois ci le débugage est plus compliqué. En effet, l'erreur se trouve à la dernière ligne du fichier et un coup d'oeil rapide indique que cette dernière ligne est correcte donc l'erreur peut se trouver n'importe où dans le fichier.
La plupart du temps, ce genre d'erreur est causé par une accolade qui a été ouverte mais pas fermée ou l'inverse. Dans ce cas le résolution du problème peut nécessiter l'utilisation d'un éditeur avec coloration du code et ainsi mettre en correspondance les différentes ouvertures et fermetures d'accolades. Dans notre exemple, il s'agit de l'accolade de fin du "for" qui a été ouverte mais pas refermée.
|
| auteurs : Kerod, Forum PHP | L'erreur "Use of undefined constant php" se produit lorsqu'une constante n'a pas été initialisé ou quand une variable n'a pas été correctement déclarée. Pour résoudre ce problème vous devez :
- Dans le cas d'une variable : rajouter un $ devant le nom de la variable afin qu'elle ne soit plus considérée comme une constante php.
Exemple : $mavariable = "Developpez.com";
echo $mavariable; |
Au lieu de : mavariable = "Developpez.com";
echo mavariable; |
- Dans le cas d'une constante : la déclarer à l'aide de la fonction define() afin de lui assigner une valeur.
Exemple : define ("MACONSTANTE", "Developpez.com");
echo MACONSTANTE; |
|
| auteur : Forum PHP |
L'erreur "supplied argument is not a valid MySQL result resource" se produit quand une fonction MySQL n'a pas de résultat MySQL valide fourni en argument. Regardons le message d'erreur suivant par exemple :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/html/bugMySQL.php on line 10 |
Et voila le contenu du fichier "bugMySQL.php" : 1 <?php
2
3 $connexion = mysql_connect('localhost', 'root', '');
4
5 mysql_select_db('test', $connexion);
6
7 $requete = 'SELECT * FROM nomTable WHERE champ = ';
8 $resultat = mysql_query($requete, $connexion);
9
10 while ($ligne = mysql_fetch_assoc($resultat)) {
11 echo "{$ligne['champ']}<br/>";
12 }
13
14 ?> |
L'erreur est à la ligne 10. Il s'agit donc de "$resultat" qui ne contient pas un résultat valide ce qui veut dire que la requête exécutée sur la ligne 8 pose problème.
Pour savoir quel est le problème, il suffit d'utiliser la fonction " mysql_error" qui retourne le message d'erreur fourni par le serveur MySQL. Cette fonction peut-être utilisée à n'importe quel étape de l'utilisation de MySQL, donc voila le code à utiliser pour gérer les erreurs.
En lançant ce code, le résultat suivant est obtenu : You have an error in your SQL syntax near '' at line 1
SELECT * FROM nomTable WHERE champ = |
À l'aide du message d'erreur de MySQL, il est maintenant facile de corriger la requête. Attention, "line 1" qui apparait dans la message ne veut pas dire qu'il y a un problème sur la première ligne du fichier PHP mais sur la première ligne de la requête.
L'utilisation de ce code est très utile pour gérer les erreurs de MySQL, c'est pourquoi il est conseillé de mettre ce code dès qu'on commence à programmer. Ainsi en cas de problème, le message d'erreur fourni par MySQL apparaît immédiatement et dans le cas où il n'y a pas de problème, le code peut être laissé, il ne gênera pas le reste du code PHP.
|
| auteur : Forum PHP | Warning: failed to open stream: Permission denied in
/home/httpd/vhosts/essais.com/httpdocs/boutique/include/admin/common.inc.php on line 14 |
Lorsque vous obtenez ce message, cela veut tout simplement
dire que vous avez pas les droits d'accès en
lecture/écriture/exploration.
Dans ce cas vous devez accéder, grâce à un client FTP, à
votre dossier et modifier le chmod en lui attribuant la valeur 777.
|
| auteurs : Kerod, Forum PHP |
Dans le cas d'une utilisation de la structure de contrôle
foreach
il se peut que l'on obtienne l'erreur :
Warning: Invalid argument supplied for foreach() in ... |
Elle indique, tout simplement, que la structure de
contrôle tente de parcourir un tableau sans contenu,
autrement dit un tableau vide.
Par conséquent, pour résoudre cette erreur il faut juste
vérifier que le code de remplissage du tableau est correct.
|
Consultez les autres F.A.Q's
Les sources présentés sur cette pages sont libre de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
Copyright ©2003
Developpez LLC. Tout droits réservés Developpez LLC.
Aucune reproduction, même partielle, ne peut être faite de ce site et de
l'ensemble de son contenu : textes, documents et images sans l'autorisation
expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
de prison et jusqu'à 300 000 E de dommages et intérets.
Cette page est déposée à la SACD.
|