Bonjour, je suis en train de créer un espace membre pour mon site, seulement je suis débutant en php et j'aurais besoin d'aide pour la page de vérification .
voici mon code actuel :
Je pense qu'il est pas trop mal, mon seul probleme c'est a partir de //On envoi tou a la BDD
Deja le message de validation s'affiche avec les erreurs, il me valide l'inscription malgré les erreurs, et je voudrais une sorte de protection parceque lorsque l'inscription est validée, en actualisant la page les infos sont renvoyées a la BDD du coup le captcha ne sert a rien puisque on peut envoyer l'inscription autant qu'on veut en actualisant.
Merci d'avance pour votre aide.
Modifié par Pikachou (15 Feb 2010 - 20:50)
voici mon code actuel :
//On verifie le pseudo.
$pseudo = htmlspecialchars($_POST['pseudo']);
if(empty($_POST['pseudo']))
{
$_SESSION['pseudo_info'] = '<div class="reponse">Veuillez indiquer votre pseudo.</div>';
echo $_SESSION['pseudo_info'];
}
else if(strlen($pseudo) < 3)
{
$_SESSION['pseudo_info'] = '<div class="reponse">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop court, Choisis en un d\'au moins 3 caractères.</div>';
echo $_SESSION['pseudo_info'];
}
else if(strlen($pseudo) > 20)
{
$_SESSION['pseudo_info'] = '<div class="reponse">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop long, Choisis en un qui ne dépasse pas 20 caractères.</div>';
echo $_SESSION['pseudo_info'];
}
else if(eregi('[^a-zA-Z0-9_]', $pseudo))
{
$_SESSION['pseudo_info'] = '<div class="reponse">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' N\'est pas valide, les caractères spéciaux sont interdit.</div>';
echo $_SESSION['pseudo_info'];
}
else if(mysql_query("SELECT id FROM membre WHERE membre_pseudo=".$pseudo))
{
$_SESSION['pseudo_info'] = '<div class="reponse">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà utiliser, Choisis en un autre.</div>';
echo $_SESSION['pseudo_info'];
}
//On verifie le mot de passe.
$mdp = htmlspecialchars($_POST['mdp']);
if(empty($_POST['mdp']))
{
$_SESSION['mdp_info'] = '<div class="reponse">Veuillez indiquer votre mot de passe.</div>';
echo $_SESSION['mdp_info'];
}
else if(strlen($mdp) < 6)
{
$_SESSION['mdp_info'] = '<div class="reponse">Le mot de passe entré est trop court, Choisis en un d\'au moins 6 caractères.</div>';
echo $_SESSION['mdp_info'];
}
else if(strlen($pseudo) > 20)
{
$_SESSION['mdp_info'] = '<div class="reponse">Le mot de passe entré est trop long, Choisis en un qui ne dépasse pas 20 caractères.</div>';
echo $_SESSION['mdp_info'];
}
else if(eregi('[^a-zA-Z0-9_]', $mdp))
{
$_SESSION['mdp_info'] = '<div class="reponse">Le mot de passe entré n\'est pas valide, les caractères spéciaux sont interdit.</div>';
echo $_SESSION['mdp_info'];
}
else if($_POST['mdp_verif'] != $_POST['mdp'])
{
$_SESSION['mdp_info'] = '<div class="reponse">Veuillez retaper correctement votre mot de passe.</div>';
echo $_SESSION['mdp_info'];
}
//On verifie l'adresse email.
$mail = $_POST['mail'];
if(empty($_POST['mail']))
{
$_SESSION['mail_info'] = '<div class="reponse">Veuillez indiquer votre adresse email.</div>';
echo $_SESSION['mail_info'];
}
else if(!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $mail))
{
$_SESSION['mail_info'] = '<div class="reponse">L\'adresse email '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</div>';
echo $_SESSION['mail_info'];
}
else if($_POST['mail_verif'] != $_POST['mail'])
{
$_SESSION['mdp_info'] = '<div class="reponse">Veuillez retaper correctement votre adresse email.</div>';
echo $_SESSION['mdp_info'];
}
else if(mysql_query("SELECT id FROM membre WHERE membre_mail=".$mail))
{
$_SESSION['mail_info'] = '<div class="reponse">L\'adresse email '.htmlspecialchars($mail, ENT_QUOTES).' est déjà utiliser, Choisis en une autre.</div>';
echo $_SESSION['pseudo_info'];
}
//On verifie le site.
if(empty($_POST['site']))
{
$_SESSION['site_info'] = '<div class="reponse">Veuillez indiquer votre site web.</div>';
echo $_SESSION['site_info'];
}
//On verifie le captcha.
if($_POST['captcha'] != $_SESSION['captcha'] && isset($_POST['captcha']) && isset($_SESSION['captcha']))
{
$_SESSION['captcha_info'] = '<div class="reponse">Vous n\'avez pas recopié correctement le code contenu dans l\'image.</div>';
echo $_SESSION['captcha_info'];
session_destroy();
}
//On envoi tou a la BDD.
$insertion = "INSERT INTO membres VALUES('', '$pseudo', '$mdp', '$mail', '$site')";
if(mysql_query($insertion))
{
echo "Votre inscription a bien été validée, vous pouvez vous connecter dés maintenant.";
}
Je pense qu'il est pas trop mal, mon seul probleme c'est a partir de //On envoi tou a la BDD
Deja le message de validation s'affiche avec les erreurs, il me valide l'inscription malgré les erreurs, et je voudrais une sorte de protection parceque lorsque l'inscription est validée, en actualisant la page les infos sont renvoyées a la BDD du coup le captcha ne sert a rien puisque on peut envoyer l'inscription autant qu'on veut en actualisant.
Merci d'avance pour votre aide.
Modifié par Pikachou (15 Feb 2010 - 20:50)