Problème page d'inscription

Résolu
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -  
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je suis en train de développer un site et j'ai un petit problème. Je fais ma page d'inscription normal, et là, ca ne m'affiche rien, juste les graphismes de mon site. Et même avec un mysql_error() ca n'affiche toujours rien. J'ai donc testé avec un autre site que j'avais développé il y a de cela quelques temps et là, ca me met les erreurs.
Voici le code :
if(isset($_POST['inscription']))
{

$pseudo = htmlspecialchars(addslashes($_POST['pseudo']));
$password = htmlspecialchars(addslashes(md5($_POST['password'])));
$password2 = htmlspecialchars(addslashes(md5($_POST['password2'])));
$email = htmlspecialchars(addslashes($_POST['email']));
$email2 = htmlspecialchars(addslashes($_POST['email2']));
$question = htmlspecialchars(addslashes($_POST['question']));
$question2 = htmlspecialchars(addslashes($_POST['question2']));


$res  = mysql_query("SELECT COUNT(*) FROM comptes WHERE pseudo = '".mysql_real_escape_string($pseudo)."'") or die(mysql_error());
$test_pseudo_row = mysql_fetch_row($res);
$test_pseudo = $test_pseudo_row[0];

$res_email  = mysql_query("SELECT COUNT(*) FROM comptes WHERE email = '".mysql_real_escape_string($email)."'") or die(mysql_error());
$test_email_row = mysql_fetch_row($res_email);
$test_email = $test_email_row[0];

if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) AND preg_match("#[^a-z0-9éèêàâîôûù]#i", $_POST['pseudo']) == FALSE AND $email == $email2 AND $password == true AND $password == $password2 AND $pseudo == true AND $email == true AND $test_pseudo == 0 AND $question == true AND $question2 == true AND $test_email['email'] == 0)
{

$query = mysql_query("INSERT INTO comptes VALUES('', '".$pseudo."', '".$password."', '".$password2."', '".$email."', '".$email2."', '".$question."', '".$question2."', '', '')") or die(mysql_error());
}

else if (preg_match("#[^a-z0-9éèêàâîôûù]#i", $_POST['pseudo']) OR $email != $email2 OR $password != $password2 OR $pseudo == false OR $email == false OR $email2 == false OR $password == false OR $password2 == false OR $question == false OR $question2 == false)
{
echo '<center>Votre compte n\'a pas été créé. Une ou plusieurs de ces raison(s) peuve(nt) en être la(les) cause(s) : <br />
Vos mots de passes sont différents.<br />
Vous n\'avez pas indiqué soit le premier, soit le deuxième mot de passe.<br />
Vous n\'avez pas indiqué votre email.<br />
Votre email n\'est pas valide.<br />
Vous n\'avez pas indiqué votre pseudo.<br />
Vous n\'avez pas choisi de question ou de réponse.<br />
Il y a des caractères spéciaux dans votre pseudo (les accents sont autorisés).<br />
<b><a href="formulaire.php">Cliquez ici pour retourner au formulaire d\'inscription</a></b></center>';
}

else if ($test_pseudo != 0)
{
echo '<p align=center>Le pseudo <strong> '.htmlspecialchars(stripslashes($_POST['pseudo'])).' </strong> est déjà utilisé. Veuillez en choisir un autre.<br />
<b><a href="formulaire.php">Cliquez ici pour retourner au formulaire d\'inscription</a></b></p>';
}

else if ($test_email != 0)
{
echo '<center><L\'email <strong> '.htmlspecialchars(stripslashes($_POST['pseudo'])).' </strong> est déjà utilisée. Veuillez en choisir une autre.<br />
<b><a href="formulaire.php">Cliquez ici pour retourner au formulaire d\'inscription</a></b></center>';
}


Merci de bien vouloir m'aider.
A voir également:

13 réponses

G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
Pas le temps de vérifier, mais ... ne faut il pas ajouter le ";" en fin de requête ?
Un truc genre

mysql_db_query("dbname","select * from comptes ;");

En même temps, je comprends pas pourquoi tu n'aurais pas d'erreur...
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
Je les ais mis les ";" en fin de requête...
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Dans le code que tu nous donnes, il n'y a aucun formulaire, juste le traitement en PHP ; donne le script complet (colle-le plutôt sur http://paste.pocoo.org/ et passe l'adresse pour le voir)
0
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
mysql_query("SELECT COUNT(*) FROM comptes WHERE pseudo = '".mysql_real_escape_string($pseudo)."'")

Je le vois pas le ;

mysql_query("SELECT COUNT(*) FROM comptes WHERE pseudo = '".mysql_real_escape_string($pseudo)." ' ; ")

Je peux pas tester là, pas l'temps... j'ai toujours pensé qu'il était impératif de le mettre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
il est après le mysql_error
0
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
Euh... oublie ce que j'ai écris ;)
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
Mdr, alors, quelqu'un peut m'aider plz ?
0
aneantisseur Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   18
 
En fait j'ai résolu le problème. Ne me demandez pas comment, j'ai juste ajouté un mysql_error() après le mysql_fetch_row et ca a marché tout de suite.
C'est quand même bizzare...
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
C'est que ce n'est pas vraiment la solution, même si "ça fonctionne".
Pour G1fo, il n'y a pas besoin de ";" dans une requête SQL avec mysql_query
0
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
Exact, j'ai vu ça ^^
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Tu as sans doute parlé de ça car PhpMyAdmin le fait lorsqu'il y a plusieurs requêtes SQL à faire.
$sql = explode(';', $_POST['sql']);
foreach($sql as $k => $v) {
    mysql_query($v);
}
0
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
Ou parce que mysql_db_query() est une fonction obsolète et que je suis un vieux crouton décrépi ;-p

0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
J'espère que ton hébergeur va vite passer à PHP6 comme ça tu seras obligé de te mettre à jour :)
0
G1fo Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   8
 
Héhé trop vrai
0