par
boobz » 16 mars 2008, 08:34
Déjà tu a des erreurs ici
$prenom = addslashes($PARAM[prenom]);
$nom = addslashes($PARAM[nom]);
il faudrait écrire
$prenom = addslashes($PARAM['prenom']);
$nom = addslashes($PARAM['nom']);
ok. mais je ne pense que ça soit la source du soucis. D'ailleurs en ajoutant les simple quotes, ça ne change rien au problème.
ensuite après ta requête pourquoi faire une redirection en javascript ?
normalement cela pourrait se faire en php
header("Location: step4.php");exit();
c'est une partie du code qui existait déjà et qui marche. Merci pour l'alternative en PHP, ça m'a fait apprendre quelque chose.
Mais c'est les tests is qui me pose problème. Je réécris en virant l'inutile :
if ( ($PARAM['action_form'] == "inserer" && $PARAM['use'] == "pro") && (!isset($PARAM['genre']) && !isset($PARAM['prenom']) ) {
$errori = 1;
qui correspond à mon premier cas où use=pro. Ce que le code est sensé faire est de vérifier que les champs genre et prénom sont renseigné et si ce n'est pas le cas, $errori =1.
Mais si on n'est pas dans le cas use=pro, mais dans celui use=private on devrait passer à la suite :
} elseif ( ($PARAM['action_form']=="inserer" && $PARAM['use'] == "private") && ($PARAM['genre']==""||$PARAM['nom']=="" ) {
$errori = 1;
et pareil dans ce cas. Si dans l'un ou l'autre cas, tous les champs sont renseignés, on devrait passer dans le dernier elseif et passer à la phase écriture dans la BD :
Remarque : dans le premier if j'ai utilisé !isset($PARAM['item'] et dans le second $PARAM['item'] == "". Cela revient au même non ?.
Ensuite on passe à l'écriture dans la BD avec une condition ($errori !=1) :
} elseif ($errori !=1) {
$prenom = addslashes($PARAM['prenom']);
$nom = addslashes($PARAM['nom']);
...
headers("Location: step4.php");exit;
}
}
Le problème c'est on passe directement dans ce dernier elseif comme si on ne passait jamais dans l'un deux premiers.. Et pourtant les champs ne sont pas renseignés. Mais pourquoi ??
Une idée ?
Merci d'avance.