Même chose, impossible de deviner sur une ligne de code prise hors contexte. Il faudrait au moins ce qui est lié (conditions, savoir précisément comment est définie cette variable justement, etc). Une erreur de portée ?
Version imprimable
Même chose, impossible de deviner sur une ligne de code prise hors contexte. Il faudrait au moins ce qui est lié (conditions, savoir précisément comment est définie cette variable justement, etc). Une erreur de portée ?
Cette ligne de code vient d'un bloc javascript qui est le suivant:
Y-a-t-il un moyen de debugger l'ensemble du site ou du mettre un trace pour avoir une erreur plus explicite ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28<script type="text/javascript"> <!-- function MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='/Vente-xxx.php?marque="+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } function MM_jumpMenuTriRub(targ,selObj,restore){ //v3.0 eval(targ+".location='/Tri-xxx.php?id=<? echo $id; ?>&tri_sens="+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } function MM_validateForm() { //v4.0 if (document.getElementById){ var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' doit contenir une adresse e-mail.\n'; } else if (test!='R') { num = parseFloat(val); if (isNaN(val)) errors+='- '+nm+' doit contenir un nombre.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (num<min || max<num) errors+='- '+nm+' doit contenir un nombre entre '+min+' et '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' est obligatoire.\n'; } } if (errors) alert('Merci de verifier votre saisie :\n'+errors); document.MM_returnValue = (errors == ''); } } //--> </script>
J'ai pas mal utilisé le logiciel glpi qui est basé également sur php MySQL et apache, et je me souviens qu'il existait un mode debug. Peux-t-on faire la même chose dans mon cas ?
Merci d'avance,
La partie Javascript n'a rien d'intéressant : c'est une variable PHP et une erreur PHP. C'est dans la partie PHP qu'il faut la chercher de façon à déterminer si, d'une part elle existe, et d'autre part dans quelles conditions. Pour cela, il faut remonter de bas (la ligne à l'origine de l'erreur) en haut toutes les références à $id afin de déterminer sa provenance et/ou comment elle est initialisée.
C'était la même chose avec la précédente : vous aviez un code commun à plusieurs scripts où le paramètre $_GET['id'] n'était présent que pour certains d'entre eux. Donc, forcément, PHP avec les notices activés, va vous signaler que vous cherchez à utiliser une variable/clé inexistante pour ceux où il est absent.
L'erreur est suffisamment explicite : c'est une erreur de "conception". Je doute qu'un debugger ne vous en apprenne plus (dépendant du code). C'est une conséquence du manque de rigueur de ceux qui ont écrit ces scripts.
Désolé de ne répondre que maintenant, j'avais pas mal de travail. Je viens de reprendre le sujet je vais essayer de trouver l'endroit qui pose problème et essayer de le résoudre. Je vous tiens au courant.