Inscriptions avec un seul email ...

Signaler
Messages postés
1
Date d'inscription
samedi 24 février 2007
Statut
Membre
Dernière intervention
20 octobre 2007
-
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
-
Voilà mon problème je suis tout nouveau dans la programmation php, mais je commence à réaliser des inscriptions pour mon site, dont voici mon codes-sources très allégé :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Ceci est une page (x)HTML de test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
</style>
</head>

<?php
if (isset ($_POST['pseudo']) AND isset ($_POST['password']) AND isset ($_POST['email']))
{
if ($_POST['pseudo'] != NULL AND $_POST['password'] != NULL AND $_POST['email'] != NULL)
{
mysql_connect("localhost","root","");
mysql_select_db("test");
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$password = mysql_real_escape_string(htmlspecialchars($_POST['password']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
$deja_pris = mysql_query("SELECT * FROM inscription ") or die(mysql_error());;
mysql_close();
if ($deja_pris['email'] == $email)
{
?>
Ce pseudo est déjà utilisé ...


<?php
}
else
{
mysql_connect("localhost","root","");
mysql_select_db("test");
mysql_query("INSERT INTO inscription VALUES('','$pseudo','$password','$email')") or die(mysql_error());;
mysql_close();
?>
Inscription terminée, vous pouvez vous connecter !


<?php
}
}
}
?>
<form action="index.php" method="post">
Pseudo :


Mot de passe :


Email :





</form

</html>

Seul problème : il ne reconnais pas quand l'email est déjà enregistré ... qu'est-ce qui ne va pas ?
(Je connais pas la balise pour le code php désolé !)

1 réponse

Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,
Premièrement tu dois fetcher le résultat dans ta variable avant, mysql_query ne retourne pas de résultats, seulement un pointeur.

$ligne= mysql_fetch_array($query); par exemple

Mais de toute manière ton code est mauvais. donc pour vérifié si le email est déja pris tu as deux solutions:

Soit tu met le champs "email" de ta base en clé unique,
sinon tu fais :

mysql_connect("localhost","root","");

mysql_select_db("test");

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));

$password = mysql_real_escape_string(htmlspecialchars($_POST['password']));

$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));

if ($query = mysql_query("SELECT * FROM `inscription` WHERE email='$email'"))
{
    if (mysql_affected_rows()>0) // Cet fonctions nous dit si la query a retourné des lignes, si c'est le cas cest que le email est déja pris
    {
    echo "Ce pseudo est déjà utilisé ...


";
    }
    else
    {
   $query = mysql_query("INSERT INTO `inscription` VALUES('','$pseudo','$password','$email')") or die(mysql_error());;

    echo "Inscription terminée, vous pouvez vous connecter !


";
    }
}
else
{
 echo "Erreur SQL";
}
mysql_close();

-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org