Code erreur sur page de connexion

Résolu
Hector187 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
 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...
A voir également:

2 réponses

tidjool
 
Salut,

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

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