Probleme formulaire inscription

Eléphanteau du PHP | 11 Messages

27 janv. 2014, 21:29

Bonsoir,

J'ai un petit probleme avec mon formulaire d'inscription, je ne trouve malheureusement pas l'erreur.
Si vous pouvez me donner un petit coup de main ce n'est pas de refus
<html>
<head>
	<meta charset="utf-8" /><!--[if lt IE 9]>
            <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>   /*Permet la comptabilit� des en-t�te et piege de page et etc.. avec les anciennes versions de IE*/
        <![endif]-->
		<link href="style.css" rel="stylesheet" />
		<title>Insctiption</title>
</head>
<body>
<div id ="bloc-page">

	
<?php
    try
	{	
		$bdd = new PDO('mysql:host=lo*****st;dbname=is********1', 'i*****', '****');
	}
	catch (Exception $e)
	{
		die('Erreur : ' . $e->getMessage());
	}
    
    if(!empty($_POST)){
        $pass_hache = sha1($_POST['pass']);
        $pseudo = $_POST['pseudo'];
        $email = $_POST['email'];
        $req = $bdd->prepare('SELECT pseudo, email FROM membres WHERE pseudo=:pseudo OR email=:email');
        $req->execute(array('pseudo'=>$pseudo, 'email'=>$email));
        if(empty($req)){
            $req = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
            $req->execute(array(
               'pseudo' => $pseudo,
                'pass' => $pass_hache,
               'email' => $email));
            echo 'Inscription Réussie';
            die();
        } else {
            echo "Un Utilisateur éxiste déjà avec ce pseudo ou cet email";
            die();
        }
    }
?>
<form action="inscription.php" method="POST">
    <label for="username">Username : <input type="text" name="pseudo" id="username"/></label>
    <label for="password">Password : <input type="password" name="pass" id="password"/></label>
    <label for="email">E-Mail : <input type="email" name="email" id="email"/></label>
    <input type="submit" value="Valider" />

</form>
						
	</div>
	</body>

</html>

ViPHP
xTG
ViPHP | 7331 Messages

27 janv. 2014, 21:40

PDO::execute renvoie true ou false suivant que la requête a réussie ou échouée.
Elle ne renvoie rien qui indique que la requête renvoie une ligne ou zéro.
PDOStatement::fetch par contre te renverra false s'il n'y a plus d'enregistrement à retourner.
Ce qui est le cas à la première utilisation s'il n'y a pas de données retournées par la requête.