Code erreur sur page de connexion

Résolu
Bonjour,

je me tourne vers vous afin de m'aider à résoudre un problème. je m'entraine à créer une page de connexion afin d'accéder à un site voici mon codage :

<body>

<?php

if(!isset($_POST['pseudo']) OR !isset($_POST['mdp']))

{
?>

<form method="post" action="phptest.php" >

<label> Pseudo </label> <input type="text" name="pseudo" />
<label> Password </label> <input type="password" name="mdp" />
<input type="submit" value="Valider" />

</form>
<?php
}
elseif (empty($_POST['pseudo'])OR empty($_POST['mdp']))

{
?>
<p> Non Non Non choupinou tu as commis une erreur !!!!! <br />
Allez recommence tu peux le faire !!!!
</p>

<form method="post" action="phptest.php" >

<label> Pseudo </label> <input type="text" name="pseudo" />
<label> Password </label> <input type="password" name="mdp" />
<input type="submit" value="Valider" />

</form>
<?php
}
else

{

try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

$req = $bdd->prepare('SELECT id FROM inscription WHERE pseudo = :pseudo AND password = :mdp ') ;
$req->execute(array('pseudo' => $_POST['pseudo'], 'password' => $_POST['mdp'])) or die(print_r($req->errorInfo()));
$donnees = $req->fetch();

if (!empty($donnees['id']))
{
echo 'Bienvenue à toi ' . $_POST['pseudo'] . 'Bro fais toi plaisir !!';
}
else
{
echo 'Erreur connexion impossible, veuillez rentrer un pseudonyme valide ainsi que le mot de passe';
}
$req->closeCursor();
}
?>
</body>

voici l'erreur qque cela m'affiche : Warning: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in...

puis : Array ( [0] => HY093 [1] => [2] => ) 1

je n'arrive pas à savoir si je n'ai pas le bon nombre de paramètres ou ils sont incorrects ? une idée ? merci d'avance...

2 réponses

  1. Merci tidjool de ta réponse j'ai trouvé mon erreur et j'ai rectifié le tire erreur sur la correspondance entre les champs de ma bdd et ceux de mon formulaire ^^.
    Je sais...
    1. ah ok ça arrive ça^^
  2. Salut,

    il manque les options de connection pdo en 4ième paramètre

    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    1. essaie ça pour voir ;-)

      $options = array(
      PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
      );

      $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $options);