formulaire et insert

Répondre
universdupc
le 05/04/2006 à 13:47
universdupc
Bonjour !

Voilà j'ai créé un espace memebre pour cela j'ai fait un formulaire d'inscription. Il me mais aucune erreur, mais le probleme c'est qu'il n'insert rien dans la base de données.

<?php
if (isset($_POST['go']) && $_POST['go'] == 'Envoyer') {

// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['mdp']) && !empty($_POST['mdp'])) && (isset($_POST['confirm_mdp']) && !empty($_POST['confirm_mdp']))) {

if ($_POST['mdp'] != $_POST['confirm_mdp']) {
$erreur = "<br><br><center><font color='#FF0000'>Les deux password correspondent pas</font></center><br>";
}
else {
//$pseudo=addslashes(htmlspecialchars($_POST['pseudo']));
//$mdp=addslashes(htmlspecialchars($_POST['mdp']));
//$mail=addslashes(htmlspecialchars($_POST['mail']));
//$url_site=addslashes(htmlspecialchars($_POST['url_site']));
//$age=addslashes(htmlspecialchars($_POST['age']));
//$sexe=addslashes(htmlspecialchars($_POST['sexe']));
//$infos_comp=$_POST['infos_comp'];
//$date = date("Y-m-d");
//$heure = date("H:i:s");
//$photo = addslashes(htmlspecialchars($_POST['photo']));

connecter();
$query='SELECT count(*) FROM membres WHERE pseudo="'.addslashes($_POST['pseudo']).'"';
$result=@mysql_query($query);
$num=@mysql_fetch_array($result);
if($num[0] == 0){

$sql = 'INSERT INTO membres VALUES("", "'.addslashes($_POST['pseudo']).'", "'.md5(addslashes($_POST['mdp'])).'";"","","","","","","","")';
echo "$sql";
$result=@mysql_query($sql);
echo "<br><br><center><font color='#FF0000'>Inscription réussie<br> Vous pouvez désormais vous connecter <a href=\"espace_membre.php?page=1\">ici</a></font></center><br>";

}
else{
$erreur = "<br><br><center><font color='#FF0000'>Un autre membre utilise déjà ce pseudo ou ce mail !</font></center><br>";
}
}
}
else{
$erreur = "<br><br><center><font color='#FF0000'>Au moins un des champs est vide</center><br>";
}
}
?>


Seriez-vous pourquoi ?

J'ai tester voir se que j'avais dans ma requête voici se que j'ai eu :


INSERT INTO membres VALUES("", "rudy1", "cfce9735de7c3873a55331a4e74b70fc";"","","","","","","","")


Se qui démontre que mes varialbes existe et je ne voit donc pas de souci dans la requête.

Merci d'avance !
manu56
le 05/04/2006 à 14:26
manu56
Salut,
Après ton mot de passe tu as mis ; a la place de ,
bonne journée
piett
le 05/04/2006 à 14:30
piett
Salut,

if($num[0] == 0){ ...

Là je comprends pas le $num[0] ?

Ensuite je ferais ça avec des ' et pas des " :
"INSERT INTO membres VALUES('','".addslashes($_POST['pseudo'])."', ...


Et puis évite le addslashes et utlilise plutôt mysql_real_escape_string.
"Des millions d'esprits ouverts ne peuvent avoir tort" Linux ;-)
piett
le 05/04/2006 à 14:34
piett
Et puis la remarque de Manu est pas bête du tout, j'avais pas vu smiley
"Des millions d'esprits ouverts ne peuvent avoir tort" Linux ;-)
universdupc
le 05/04/2006 à 14:36
universdupc
J'ai trouvé l'erreur, cela vient d'un ; dans la requeste insert.


$sql = 'INSERT INTO membres VALUES("", "'.addslashes($_POST['pseudo']).'", "'.md5(addslashes($_POST['mdp'])).'";"","","","","","","","")';


Merci

Sinon le $num[0]==0 est pour tester si le login existe déjà.

Voilà
zebden
le 05/04/2006 à 14:56
zebden
Là je comprends pas le $num[0] ?


mysql_fetch_array() renvoie un tableau assciatif donc à index textuel et à un autre à index numérique. $num[0] est donc juste.

Piett, pour ce qui est de la syntaxe de base entre les quotes et guillemets, il est plus optimisé d'utiliser les quotes pour délimiter une chaine PHP et non les guillemets, donc sa synthaxe était juste. Après rien ne t'empeche toi de l'ecrire comme tu le souhaites.

C'est gentil de vouloir aider petit padawan, mais faut revoir certaines bases :-p

universdupc, comme tu utilises addslashes ou n'importe quel autre fonction. Un peu de revisage au niveau des fonctions devraient répondre à toutes tes questions.
zebdinou pour les intimes / Blog : http://www.zebden.fr
piett
le 05/04/2006 à 16:14
piett
>Piett, pour ce qui est de la syntaxe de base entre les quotes et guillemets, il est plus optimisé d'utiliser les quotes pour délimiter une chaine PHP et non les guillemets, donc sa synthaxe était juste. Après rien ne t'empeche toi de l'ecrire comme tu le souhaites.
Je mélange, les quotes c est " ?
"Des millions d'esprits ouverts ne peuvent avoir tort" Linux ;-)
zebden
le 05/04/2006 à 16:25
zebden
" : guillemets
' : quotes

^_^
zebdinou pour les intimes / Blog : http://www.zebden.fr
Répondre
LoadingChargement en cours