Invalid parameter number : parameter was not defined...
Résolu
Zeptron
-
Zeptron -
Zeptron -
Bonsoir, j'ai un problème, c'est cette erreur.
L'erreur complète est :
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\senek\verification.php on line 42.
Le code ( sur 2 pages ) :
Première page :
Deuxième page ( où il y a le problème ) :
L'erreur est là où il a le gras, cependant je ne vois pas l'erreur que j'ai fait.
Ps : ma table a exactement les mêmes valeurs.
EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
L'erreur complète est :
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp\www\senek\verification.php on line 42.
Le code ( sur 2 pages ) :
Première page :
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<title> Inscription pour notre jeu </title>
</head>
<body>
<p> Remplissez les informations qui vous sont demandées ci-dessous pour créer votre compte. </p>
<form method="post" action="verification.php" >
<p> Pseudo :
<input type="text" name ="pseudo" /> <br />
Mot de passe :
<input type="password" name="password" /> <br />
Retapez votre mot de passe :
<input type="password" name="verifier" /> <br />
Votre age :
<input type="number" name="age" /> <br />
Votre email :
<input type="text" name="email" /> <br />
Votre pays :
<input type="text" name="lieu" /> <br />
<input type="submit" value="valider" />
</p>
</form>
</body>
</html>
Deuxième page ( où il y a le problème ) :
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8" />
<title> Vérification pour le nouveau compte </title>
</head>
<body>
<?php
if ($_POST['password'] != $_POST['verifier'])
{
?>
<p>
Vous avez surement mal écrit votre mot de passe <br />
Désolé, mais vous devez revenir sur le lien d'inscription : <a href="pageinscription.php"> Crée un compte </a>
</p>
<?php
exit(0);
}
else
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['email']))
{
?>
<p> Votre compte a bien été crée <br />
Merci d'avoir de l'attention pour notre jeu <br />
Je vous prie d'aller vers la page d'accueil : <a href="accueil.php" > Commencez à jouer </a>
</p>
<?php
$pseudo = $_POST['pseudo'];
$password = $_POST['password'];
$age = $_POST['age'];
$email = $_POST['email'];
$lieu = $_POST['lieu'];
$bdd = new PDO('mysql:host=localhost;dbname=membres' , 'root', '');
$req = $bdd->prepare('INSERT INTO membres(pseudo,password,age,email,lieu) VALUES(:pseudo,:password,:age,:email,:lieu)');
$req->execute(array(
$_POST['pseudo'] => $pseudo,
$_POST['password'] => $password,
$_POST['age'] => $age,
$_POST['email'] => $email,
$_POST['lieu'] => $lieu));
exit(0);
}
else
{
?>
<p> Votre adresse mail n'est pas valide ! <br />
Désolé, mais vous devez revenir sur le lien d'inscription : <a href="pageinscription.php"> Crée un compte </a>
</p>
<?php
exit(0);
}
}
?>
</body>
</html>
L'erreur est là où il a le gras, cependant je ne vois pas l'erreur que j'ai fait.
Ps : ma table a exactement les mêmes valeurs.
EDIT : Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
A voir également:
- Pdostatement::execute(): sqlstate[hy093]: invalid parameter number: parameter was not defined in
- Invalid signature detected check secure boot policy in setup - Forum Windows 10
- The requested url was rejected. please consult with your administrator. ✓ - Forum Réseaux sociaux
- Aux in ✓ - Forum Enceintes / HiFi
- Navigation in private - Guide
- Peut-on brancher un casque sur une prise auxiliaire ? - Forum Casque et écouteurs
1 réponse
Bonjour,
1 - J'ai édité ton message pour y ajouter les balises de code.
merci d'y penser la prochaine fois.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Ton message d'erreur.. indique la LIGNE 42 de ton fichier...C:\wamp\www\senek\verification.php
DOnc..
Le souci se trouve à ces lignes là :
C'est on ExecuteArray qui n'est pas bon...
Que viennent faire les $_POST dans ce tableau ??
La bonne Syntaxe serait :
Bien entendu... l'idéal étant d'alimenter tes variables : $pseudo $password.. à partir des POST.. (AVANT DE FAIRE LE EXECUTE )
donc comme ceci
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
1 - J'ai édité ton message pour y ajouter les balises de code.
merci d'y penser la prochaine fois.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Ton message d'erreur.. indique la LIGNE 42 de ton fichier...C:\wamp\www\senek\verification.php
DOnc..
Le souci se trouve à ces lignes là :
$req = $bdd->prepare('INSERT INTO membres(pseudo,password,age,email,lieu) VALUES(:pseudo,:password,:age,:email,:lieu)');
$req->execute(array(
$_POST['pseudo'] => $pseudo,
$_POST['password'] => $password,
$_POST['age'] => $age,
$_POST['email'] => $email,
$_POST['lieu'] => $lieu));
C'est on ExecuteArray qui n'est pas bon...
Que viennent faire les $_POST dans ce tableau ??
La bonne Syntaxe serait :
$req->execute(array(
':pseudo' => $pseudo,
':password' => $password,
':age'=> $age,
':email'=> $email,
':lieu' => $lieu)
);
Bien entendu... l'idéal étant d'alimenter tes variables : $pseudo $password.. à partir des POST.. (AVANT DE FAIRE LE EXECUTE )
donc comme ceci
$pseudo = isset( $_POST['pseudo'])? $_POST['pseudo']:''; $password =isset($_POST['password'])?$_POST['password']:''; // etc....
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Zeptron
Merci beaucoup