Problème avec une requête préparé...
Posté : 01 avr. 2010, 11:04
Bonjour a tous!!! tite embrouille qui m'donne mal à la tête j'vous explique...
J'ai récupéré un tuto pour faire la connexion à un compte client mais j'ai dus l'adapter pour être en PDO et quand j'ai modifié mes requête c'est là que ca s'est mis a déconner... Alors le symptome est que lorsque je tape un email existant il ne l'enregistre pas dans la base comme convenu mais par contre il m'envois vers ma redirection quand meme au lieu d'afficher le message disant "Cet email est déjà utilisé". J'pense que c'est ma requête INSERT INTO qui est pas bonne car j'ai lu qu'elle devrait retourner true si elle s'est bien déroulé et là j'ai l'impression qu'elle retourne rien du tout
bouh!
<?php
/*************************************************************************/
/*** Création du compte client à partir de l'email et d'un mot de pass
/*************************************************************************/
// Initialisation du message de réponse
$message = null;
if (isset($_POST['email']))
{
// Vos identifiants
$email = (isset($_POST['email']) && trim($_POST['email']) != '')? Verif_magicquotes($_POST['email']) : null;
$password = (isset($_POST['password']) && trim($_POST['password']) != '')? Verif_magicquotes($_POST['password']) : null;
// Si $email et $password est déjà présent dans la base
if (isset($email,$password))
{
$reponse = $bdd->prepare("
SELECT COUNT(email)
AS nb_entrees
FROM membres
WHERE email = :email
");
$reponse->execute(array(
'email' => $email
));
$resultat = $reponse->fetch();
echo $resultat['nb_entrees'];
if ($resultat['nb_entrees'] == 0)
{
// Insertion à l'aide d'une requête préparée
$req = $bdd->prepare("
INSERT INTO membres
VALUES('', :email, :password)
");
$req->execute(array(
'email' => $email,
'password' => $password
));
$verif = $req->fetch();
if ($verif == true)
{
$_SESSION['email'] = $email;
header("Location: ../../templates/pages/etape6_recapitulatif.php");
exit();
}
}
else
{
$message = 'Cet email est déjà utilisé, changez-le.';
}
}
else
{
$message = 'Les champs "email" et "Mot de passe" doivent être remplis.';
}
}
?>