Code erreur sur page de connexion

Résolu
Hector187 Messages postés 8 Statut Membre -  
 tidjool -
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. tidjool
     
    Salut,

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

    $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    0
    1. tidjool
       
      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. Hector187 Messages postés 8 Statut Membre
     
    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. tidjool
       
      ah ok ça arrive ça^^
      0