Code erreur sur page de connexion

Résolu/Fermé
Hector187 Messages postés 8 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 2 avril 2013 - 13 mars 2013 à 19:59
 tidjool - 21 mars 2013 à 21:34
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

Salut,

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

$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
0
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 mercredi 13 mars 2013 Statut Membre Dernière intervention 2 avril 2013
21 mars 2013 à 21:20
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
ah ok ça arrive ça^^
0