Ajout de champs dans un formulaire d'inscription

Helly
Invité n'ayant pas de compte PHPfrance

24 nov. 2007, 22:44

Bonjour à tous!
J'essaye d'adapter un script aux besoins d'un site. Au départ dans le formulaire d'inscription il y avait trois champs, et tout fonctionnait très bien jusqu'à ce que j'en ajoute (j'ai ajouté d'autres champs à la base de données également).
Voici le code de mon script
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {  
 
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['code']) && !empty($_POST['code'])) && (isset($_POST['debut']) && !empty($_POST['debut'])) && (isset($_POST['fin']) && !empty($_POST['fin'])) && (isset($_POST['fai']) && !empty($_POST['fai']))) {  
 
if ($_POST['pass'] != $_POST['pass_confirm']) {  
$erreur = 'Les 2 mots de passe sont différents.';  
}  
else {  
$base = mysql_connect ('SERVEUR', 'USER', 'PASS');  
mysql_select_db ('NOMBASE', $base);  
 
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';  
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
$data = mysql_fetch_array($req);  
 
if ($data[0] == 0) {  
$sql = 'INSERT INTO membre (id,login,pass_md5,email,code,debut,fin,fai) VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'", "'.mysql_escape_string($_POST['code']).'", "'.mysql_escape_string($_POST['debut']).'", "'.mysql_escape_string($_POST['fin']).'", "'.mysql_escape_string($_POST['fai']).'")';  
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
 
header('Location: index.php');  
exit();  
}  
else {  
$erreur = 'Un membre possède déjà ce login.';  
}  
}  
}  
else {  
$erreur = 'Au moins un des champs est vide.';  
}  
}  
Le résultat de tout ça est une page blanche et que seuls les trois premiers champs enregistrés dans la base de données.
J'ai essayé tout un tas de trucs mais rien ne marche et je ne sais pas où j'ai fait une boulette.

Merci d'avance pour votre aide :)

Petit nouveau ! | 2 Messages

25 nov. 2007, 12:46

J'ai essayé tout un tas de trucs mais rien ne marche et je ne sais pas où j'ai fait une boulette.
Si j'peux me permettre de te donner un conseil en tant que débutant de chez débutant c'est de mettre des commentaires et des noms clairs à tes variables et/ou fonctions et aussi d'indenter ton code.

Ca te permettra de mieux te relire par la suite ;)

Plus d'infos ICI

ViPHP
AB
ViPHP | 5818 Messages

25 nov. 2007, 20:18

isset($_POST['login']) && !empty($_POST['login']) est redondant et inutile

en effet si !empty($var) est vrai alors isset($var) l'est nécéssairement puisque !empty signifie une variable définie, non vide et différente de zero et isset signifie simplement une variable définie

!empty($_POST['login'] se suffit donc à lui-même. Tu peux donc supprimer tous les isset que tu vérifies dans cette même ligne.

Sinon y'a un truc que je trouve bizarre dans ta requête c'est l'attribution d'une valeur nulle au champ id dans ton insertion :-k