Bonjour à tous.
J'aimerais vous soumettre mon script d'inscription qui présente des dysfonctionnements inconnus o_O
Avec ce code, non seulement les différents messages d'erreurs ne s'affichent pas en fonction des circonstances, mais les conditions de vérification du pseudo, password, email... ne sont pas prises en compte.
Alors, pouvez vous m'indiquer à quel niveau je me suis planté dans ce code ? ou plutôt me proposer une méthode plus sobre pour parvenir au même résultat ?
Merci d'avance pour vos réponses
Modifié par Wingate (21 May 2011 - 15:45)
J'aimerais vous soumettre mon script d'inscription qui présente des dysfonctionnements inconnus o_O
<?php //Avant toute chose, je vérifie ici que tous les champs sont bien remplis
if (!empty($_POST['pseudo'])
AND !empty($_POST['password'])
AND !empty($_POST['conf_pass'])
AND !empty($_POST['email'])
AND !empty($_POST['conf_mail'])
AND !empty($_POST['age'])
AND !empty($_POST['passion'])
AND !empty($_POST['sexe'])
AND !empty($_POST['reglement'])
)
{
// Si tous les champs sont remplis, je vérifie maintenant leur contenu. Si une condition est vrai, une variable ($pseudo, $email, $password...) est crée
if (strlen($_POST['pseudo']) > 3)
{
$pseudo = $_POST['pseudo'];
}
else
{
echo "Votre pseudonyme est trop court !";
}
if (strlen($_POST['password']) > 3 AND $_POST['password'] == $_POST['conf_pass'])
{
$password = $_POST['password'];
}
else
{
echo "Votre mot de passe est invalide !";
}
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
$email = $_POST['email'];
}
else
{
echo "Votre adresse e-mail est invalide !";
}
if ($_POST['age'] > 5)
{
$age = $_POST['age'];
}
else
{
echo "Vous avez moins de 5 ans ?? INCROYABLE !";
}
if (!empty($_POST['passion']))
{
$passion = $_POST['passion'];
}
else
{
echo "Merci de renseigner au moins une passion.";
}
if (!empty($_POST['sexe']))
{
$sexe = $_POST['sexe'];
}
else
{
echo "Merci d'indiquer votre sexe !";
}
if (!empty($_POST['reglement']))
{
$reglement = $_POST['reglement'];
}
else
{
echo "Vous devez accepter le règlement pour vous inscrire !";
}
if (!empty($pseudo) // Je vérifie ici que les variables $pseudo, $password, $email... crées plus haut existent avant d'établir une connexion à la BDD et enregistrer définitivement les informations de l'utilisateur
AND !empty($password)
AND !empty($email)
AND !empty($age)
AND !empty($passion)
AND !empty($sexe)
AND !empty($reglement)
)
{
require("connect_bdd.php");
$req = $bdd->prepare('INSERT INTO membres VALUES(\'\', [langue]seudo, [langue]assword, :email, :age, [langue]assions, :sexe)');
$req->execute (array(
'pseudo'=> $pseudo,
'password'=> $password,
'email'=> $email,
'age'=> $age,
'passions'=> $passion,
'sexe'=> $sexe
));
$req->closeCursor();
header("Location: ../index.php");
}
}
?>
Avec ce code, non seulement les différents messages d'erreurs ne s'affichent pas en fonction des circonstances, mais les conditions de vérification du pseudo, password, email... ne sont pas prises en compte.
Alors, pouvez vous m'indiquer à quel niveau je me suis planté dans ce code ? ou plutôt me proposer une méthode plus sobre pour parvenir au même résultat ?
Merci d'avance pour vos réponses

Modifié par Wingate (21 May 2011 - 15:45)