Problème page d'inscription

Résolu/Fermé
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 - 23 janv. 2010 à 15:00
G1fo Messages postés 100 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 - 24 janv. 2010 à 00:15
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 jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
23 janv. 2010 à 15:08
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 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
23 janv. 2010 à 15:08
Je les ais mis les ";" en fin de requête...
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
23 janv. 2010 à 15:14
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 jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
23 janv. 2010 à 15:14
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 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
23 janv. 2010 à 15:19
il est après le mysql_error
0
G1fo Messages postés 100 Date d'inscription jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
23 janv. 2010 à 15:39
Euh... oublie ce que j'ai écris ;)
0
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
23 janv. 2010 à 15:54
Mdr, alors, quelqu'un peut m'aider plz ?
0
aneantisseur Messages postés 384 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 13 juillet 2018 18
23 janv. 2010 à 16:03
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 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
23 janv. 2010 à 17:24
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 jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
23 janv. 2010 à 17:37
Exact, j'ai vu ça ^^
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
23 janv. 2010 à 17:44
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 jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
23 janv. 2010 à 18:00
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 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 503
23 janv. 2010 à 22:47
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 jeudi 5 novembre 2009 Statut Membre Dernière intervention 3 février 2010 8
24 janv. 2010 à 00:15
Héhé trop vrai
0