J ai une erreur sur ma page mod_profile qui est :
Erreur : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
le code de la page est
<?php
session_start();if(!isset($_SESSION['id_client']))
header('Location:accueil.php');
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$pdo = new PDO('mysql:host=localhost;dbname=User', 'root', '', $pdo_options);
$idclient=$_SESSION['id_client'];
$req = $pdo ->prepare('SELECT * FROM client WHERE id_client="'.$idclient.'"');
$req->execute(array(':id_client'=>$idclient));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>modifier profil d'inscription</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" title="monstyle" href="style.css" />
</head>
<body>
<div id="section">
<div id="article">
<h2>Modifier les donnees d'inscription</h2>
<form method="post" action="mod_profile.php">
<p>
<?php
while ($resultat = $req->fetch())
{
echo 'Bonjour'.' '.$resultat['login'].'<br/><br/>';
echo 'Modifier votre nom : '.$resultat['nom'] . '<br/>';?>
<input type="text" name="last-name" size="30" /><br/><br/>
<?php
echo 'Modifier votre prénom : '.$resultat['prenom'];?><br/>
<input type="text" name="first-name" size="30" /><br/><br/>
<?php
echo 'Modifier votre date naiss : '.$resultat['date_naiss'];?><br/>
<input type="text" name="date_naiss" size="30" /><br/><br/>
<?php
echo 'Modifier votre adresse : '.$resultat['adresse'];?><br/>
<input type="text" name="adresse" size="30" /><br/><br/>
<?php
echo 'Modifier votre code postal : '.$resultat['code_postal'];?><br/>
<input type="text" name="postal-code" size="30" /><br/><br/>
<?php
echo 'Modifier votre ville : '.$resultat['ville'];?><br/>
<input type="text" name="city" size="30" /> <br/><br/>
<?php
echo 'Modifier votre email : '.$resultat['email'];?><br/>
<input type="text" name="e-mail" size="30" /><br/><br/>
<?php
echo 'Modifier votre mot de passe : ';?><br/>
<input type="password" name="pass" size="30" /><br/><br/>
<?php
echo 'Confirmer votre mot de passe : ';?><br/>
<input type="password" name="cpass" size="30" /><br/><br/>
<input type="submit" name="valider" value="modifier"/>
</p>
</form>
</div>
<div id="aside">
<?php
if (isset($_POST['valider']) )
{
if(!empty($_POST['last-name']) || !empty($_POST['first-name']) || !empty($_POST['date_naiss']) || !empty($_POST['adresse']) || !empty($_POST['postal-code']) || !empty($_POST['city']) ||
!empty($_POST['e-mail']) || !empty($_POST['pass']))
{
try
{
$req= 'UPDATE client SET nom = :nom, prenom = :prenom, date_naiss =:date_naiss, adresse =:adresse, code_postal =:code_postal, ville =:ville, email =:email, pass =:pass
WHERE id_client ="'.$idclient.'"';
$reqpreparee= $pdo->prepare($req);
$reqpreparee ->execute(array('nom'=>$_POST['last-name'],
'prenom'=>$_POST['first-name'],
'date_naiss'=>$_POST['date_naiss'],
'adresse'=>$_POST['adresse'],
'postal_code'=>$_POST['postal-code'],
'ville'=>$_POST['city'],
'email'=>$_POST['e-mail'],
'pass'=>$_POST['pass'],
'id_client' => $idclient));
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
echo '<br/><br/> Informations modifiées avec succès <br/>';
$reqpreparee->closeCursor();
}
else
{
echo 'Vous devez remplir tous les champs !';
}
?>
<br/><br/><a href="profile.php">Retour a la page profil</a>
<?php
}
}
?>
</div>
</body>
</html>
mon insert into est dans la page index qui est :
<?php
//$pass_hache = sha1($_POST['pass']);
$req = "SELECT login FROM Client WHERE login =:login";
$reqpreparee = $pdo ->prepare($req);
$reqpreparee ->execute(array(':login' => $_POST['login']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête sélection : ';
echo $req;
die();
}
$resultatreqprep = $reqpreparee->fetchall();
if(count($resultatreqprep) != 0)
{
include 'menu_no_connex.php';
echo'<h2> Login non disponible.Essayez un autre.</h2>';
echo'<h4><a href ="'.$_SESSION['nompage'].'"> Retour vers la page inscription.</a></h2>';
$reqpreparee->closeCursor();
}
else
{
include 'menu_connex.php';
$_SESSION['login'] = $_POST['login'];
$req="INSERT into Client (id_client,login,pass,nom,prenom,date_naiss,adresse,code_postal,ville,email,indesirable,date_inscription)
VALUES (:id_client,:login,:pass,:nom,:prenom,:date_naiss,:adresse,:code_postal,:ville,:email,:indesirable,NOW())";
$reqpreparee = $pdo->prepare($req);
$reqpreparee ->execute(array(
'id_client'=>'',
'login'=>$_POST['login'],
'pass'=>md5($_POST['pass']),
'nom'=>$_POST['last-name'],
'prenom'=>$_POST['first-name'],
'date_naiss'=>$_POST['date_naiss'],
'adresse'=>$_POST['adresse'],
'code_postal'=>$_POST['postal-code'],
'ville'=>$_POST['city'],
'email'=>$_POST['e-mail'],
'indesirable'=>'non'));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête d\'insertion : ';
echo $req;
die();
}
$reqpreparee->closeCursor();
$req = "SELECT id_client FROM Client WHERE login =:login";
$reqpreparee = $pdo ->prepare($req);
$reqpreparee ->execute(array(':login' => $_POST['login']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête sélection : ';
echo $req;
die();
}
while( $result = $reqpreparee-> fetch() )
{
$_SESSION['id_client'] = $result['id_client'];
}
$reqpreparee->closeCursor();
$req="INSERT INTO Logs (client_id,date)
VALUES (:id,NOW())";
$reqpreparee = $pdo->prepare($req);
$reqpreparee->execute(array(':id' => $_SESSION['id_client']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête d\'insertion : ';
echo $req;
die();
}
$reqpreparee->closeCursor();
echo'<h3>Bonjour '.$_SESSION['login'].', bienvenue sur notre site !.</h3>';
}
<?php
//$pass_hache = sha1($_POST['pass']);
$req = "SELECT login FROM Client WHERE login =:login";
$reqpreparee = $pdo ->prepare($req);
$reqpreparee ->execute(array(':login' => $_POST['login']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête sélection : ';
echo $req;
die();
}
$resultatreqprep = $reqpreparee->fetchall();
if(count($resultatreqprep) != 0)
{
include 'menu_no_connex.php';
echo'<h2> Login non disponible.Essayez un autre.</h2>';
echo'<h4><a href ="'.$_SESSION['nompage'].'"> Retour vers la page inscription.</a></h2>';
$reqpreparee->closeCursor();
}
else
{
include 'menu_connex.php';
$_SESSION['login'] = $_POST['login'];
$req="INSERT into Client (id_client,login,pass,nom,prenom,date_naiss,adresse,code_postal,ville,email,indesirable,date_inscription)
VALUES (:id_client,:login,:pass,:nom,:prenom,:date_naiss,:adresse,:code_postal,:ville,:email,:indesirable,NOW())";
$reqpreparee = $pdo->prepare($req);
$reqpreparee ->execute(array(
'id_client'=>'',
'login'=>$_POST['login'],
'pass'=>md5($_POST['pass']),
'nom'=>$_POST['last-name'],
'prenom'=>$_POST['first-name'],
'date_naiss'=>$_POST['date_naiss'],
'adresse'=>$_POST['adresse'],
'code_postal'=>$_POST['postal-code'],
'ville'=>$_POST['city'],
'email'=>$_POST['e-mail'],
'indesirable'=>'non'));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête d\'insertion : ';
echo $req;
die();
}
$reqpreparee->closeCursor();
$req = "SELECT id_client FROM Client WHERE login =:login";
$reqpreparee = $pdo ->prepare($req);
$reqpreparee ->execute(array(':login' => $_POST['login']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête sélection : ';
echo $req;
die();
}
while( $result = $reqpreparee-> fetch() )
{
$_SESSION['id_client'] = $result['id_client'];
}
$reqpreparee->closeCursor();
$req="INSERT INTO Logs (client_id,date)
VALUES (:id,NOW())";
$reqpreparee = $pdo->prepare($req);
$reqpreparee->execute(array(':id' => $_SESSION['id_client']));
if($reqpreparee === FALSE)
{
echo 'Il y a une erreur dans votre requête d\'insertion : ';
echo $req;
die();
}
$reqpreparee->closeCursor();
echo'<h3>Bonjour '.$_SESSION['login'].', bienvenue sur notre site !.</h3>';
}
$reqpreparee->closeCursor();
if ($pdo)
$pdo = NULL ;
?>
$reqpreparee->closeCursor();
if ($pdo)
$pdo = NULL ;
?>
Merci de m'avoir aider