modifier profil d'un membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : modifier profil d'un membre

Re: modifier profil d'un membre

par imran2011 » 25 juil. 2012, 14:07

Salut
jai resoud mon probleme, voici la page qui marche bien
jesper ca va aider kelkun
<?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>

<?php
    include 'menu_connex.php';
 ?> 

<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 login : '.$resultat['login'];?><br/>
<input  type="text" name="login" size="30" /><br/><br/>
<?php
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['login'])) && (!empty($_POST['pass'])) && (!empty($_POST['cpass'])) && (!empty($_POST['last-name']))
					&& (!empty($_POST['first-name'])) && (!empty($_POST['e-mail'])) && (!empty($_POST['date_naiss'])) && (!empty($_POST['adresse']))
					&& (!empty($_POST['postal-code']))&& (!empty($_POST['city'])) )
	{

		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,login=:login, indesirable = :indesirable,id_client= :id_client 
				    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'], 
						     'code_postal'=>$_POST['postal-code'], 
						     'ville'=>$_POST['city'], 
						     'email'=>$_POST['e-mail'], 
						     'pass'=>md5($_POST['pass']),
							 'login'=>$_POST['login'],
                             'indesirable'=>'non',							 
						     '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>
Merci à tous

Re: modifier profil d'un membre

par DiurnaSys » 24 juil. 2012, 18:24

Rebonjour,

Je croit que cette erreur arrive quand il manque des champs dans ta requête : combien à tu de champs dans la table 'client' ?
Le plus simple est de mettre des echo() avant chaque requête pour trouver celle qui à un soucis et me rapporter le résultat (Par la j'entends la requête qui ne fonctionne pas)

Cordialement.

Re: modifier profil d'un membre

par imran2011 » 24 juil. 2012, 18:19

Salut
j'ai essayer sans les guillemets,c'est toujours la meme erreur qui est :
Erreur : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

Merci

Re: modifier profil d'un membre

par DiurnaSys » 24 juil. 2012, 15:30

Rebonjour,

Tu a parfaitement répondu.
Regarde bien ta requête :
$req = $pdo ->prepare('SELECT * FROM client WHERE id_client="'.$idclient.'"');
Voit tu les " ? Ils signifient que tu compare à une chaine de caractères : essaye sans les " (<- Doubles guillemets).

Cordialement.

Re: modifier profil d'un membre

par imran2011 » 24 juil. 2012, 15:24

Salut
id_client est dans la table client et il est en int
client_id est dans la table logs, il est aussi en int
peut etre jai pas bien compris la question

Merci de votre aide

Re: modifier profil d'un membre

par DiurnaSys » 24 juil. 2012, 14:20

Bonjour,

J'ai remarqué un 'client_id' dans ton 'INSERT INTO log' à part cela a tu vérifié que 'id_client' est bien une chaine de caractères et non un nombre ?

Cordialement.

modifier profil d'un membre

par imran2011 » 24 juil. 2012, 13:41

Salut
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