2013-09-08 3 views
0
if(isset($_POST['dino_c']) AND isset($_POST['dino_box']) AND isset($dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$_POST['dino_box']])){ 
if(....){ 
if(($pop>(0-1+$dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$_POST['dino_box']][4])) AND ($resource[0]>(0-1+$dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][5] -1)) AND ($resource[1]>(0-1+$dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][6] -1)) AND ($resource[2]>(0-1+$dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][7] -1))){ 
. 
. 
. 
. 
$pop = $pop - $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$_POST['dino_box']][4]; 
$pop_consum = $pop_consum + $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$_POST['dino_box']][4]; 
$resource[0] = 0 + $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][5]; 
$resource[1] = 0 + $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][6]; 
$resource[2] = 0 + $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][7]; 
$dino_add[$a_dino[$_POST['dino_c']][1]-1] = 0 + $dino_recruit[$a_dino[$_POST['dino_c']][1]][$a_dino[$_POST['dino_c']][3]][$a_dino[$_POST['dino_box']]][0]; 
. 
. 
. 
. 
} 
} 
} 

Il est mon code et quand je l'utilise:Pourquoi donne l'erreur d'index non définie?

> undefined index:4 in .... ajax.php on line 672 => here line 3 
> undefined index: in .... ajax.php on line 672 => here line 3 
> undefined index:4 in .... ajax.php on line 672 => here line 3 
> undefined index: in .... ajax.php on line 672 => here line 3 
> undefined index:4 in .... ajax.php on line 672 => here line 3 
> undefined index: in .... ajax.php on line 672 => here line 3 
> undefined index:4 in .... ajax.php on line 679 => here line 10 
> undefined index: in .... ajax.php on line 679 => here line 10 
.... 
> undefined index:4 in .... ajax.php on line 682 => here line 13 
> undefined index: in .... ajax.php on line 682 => here line 13 

J'utilise isset() pour vérifier mes données. si tout est réglé, pourquoi produit-il une erreur?

dans ce code nous avons 2 $ _POST et ils sont vérifiés dans la ligne 1 et d'autres données sont tableau et je le vérifie 100 fois et je ne vois pas où est l'erreur. Veuillez voir les lignes 8 et 9. Ils n'ont pas d'erreur. Bien que la structure est similaire à d'autres lignes. Pourquoi?

+0

Undefined index: [...] les points de l'arbre est où l'erreur indique que l'index est unifine –

+0

Sans le regarder ... sont tous ces $ a_dino [$ _ POST ['xyz']] et sont-ils réglés de la même manière? Si ce n'est pas le cas, vous devez également les vérifier avec isset(). Montrez-nous la ligne de code où l'erreur se produit. – djot

+0

ok édité et j'ajoute toute erreur. et maintenant? – naser

Répondre

4

Lorsque u ne isset($r['t']['b']['v']);

Il suppose $r['t']['b'] existe déjà, et vérifie que le ['v'].
Si les ['t'] ou ['b'] sont pas PHP existant émet un avertissement, même si elle est à l'intérieur isset

Donc, pour vérifier ce tableau est en fait multiple faible:

if(isset($r['t'])&&isset($r['t']['b'])&&isset($r['t']['b']['v'])){... 
+0

ty pour la réponse. mais tout est réglé. Je le vérifie 100 fois. ils sont la base de données de tableau et de données. avez-vous besoin de voir le tableau? – naser

+0

'isset' vérifie si la variable est définie. Si je vérifie quelque chose comme 'var_dump (isset ($ undefinedVar [1] [2] [3]));' il retournera faux pas les avertissements. Pouvez-vous donner un exemple clair qui explique votre point "Il suppose que $ r ['t'] ['b'] existe déjà, et ne vérifie que le ['v'] .Si ceux ['t'] ou ['b' ] sont inexistants PHP va émettre un avertissement, même si c'est à l'intérieur de isset ". – Konsole

+0

Je les ai tous essayés mais toujours erreur erreur erreur erreur ... – naser