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. Salut,

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

    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    0
    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);
      0
  2. 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...
    0
    1. ah ok ça arrive ça^^
      0