Besoin d expert en php

HotSkill Messages postés 70 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

voici un code pour changer un mot de passe mai le probleme ce que ce ne fonctionne pas il m'indique mon message d erreur veuillez avoir l'obligeance de recommencer mais ce message s'affiche qunad $mot_passe && $mot_de_passe && $nom_d_utilisateur ne sont pas bien rempli donc voici mon code merci de bien vouloir m aider

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
<link href="mysql_connect_enregritrement.css" rel="stylesheet" type="text/css" />
<link href="styles-enregistrer.css" rel="stylesheet" type="text/css" />
</head>

<body>
<?php
//définir le titre de la page et metre le menu
$titre_page = "changer mot de passe";
include ('menu.php');

if(isset($_POST['submit']))
{//traiter le formulaire

function echappement ($data)
{ global $bd;//connexion nécessaire
if(ini_get('magic_quotes_gpc'))
{ $data = stripslashes($data);
}
return mysql_escape_string($data);
}//fin de la fonction

mysql_connect("localhost", "root", "");
mysql_select_db("ma base");

$message = NULL;

//vérifier l'exitence du username
if (empty($_POST['nom_d_utilisateur']))
{ $nom_d_utilisateur = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre nom_d_utilisateur</p>';
}
else
{ $nom_d_utilisateur = echappement($_POST['nom_d_utilisateur']);
}

//vérifier l'exitence du username
if (empty($_POST['mot_passe']))
{ $mot_passe = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre mot de passe</p>';
}
else
{ $nom_d_utilisateur = echappement($_POST['mot_passe']);
}

//véréfier l' existence d'un mot de passe
if(empty($_POST['mot_de_passe1']))
{ $mot_de_passe = FALSE;
$message .= '<p>Vous avez oublié d\'indiquer votre nouveau mot de passe </p>';
}
else
{if ($_POST['mot_de_passe1'] == $_POST['mot_de_passe2'])
{ $mot_de_passe = echappement($_POST['mot_de_passe1']);
}
else
{ $mot_de_passe= FALSE;
$message .= '<p>Votre mot de passe est différent de celui que vous avez précédement déclaré</p>';
}
}

if ( $mot_passe && $mot_de_passe && $nom_d_utilisateur)
{

$nom_d_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['nom_d_utilisateur']));
$mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));

$rq = "SELECT id_utilisateur FROM utilisateur
WHERE (nom_d_utilisateur= $nom_d_utlisateur AND mot_de_passe=PASSWORD ('mot_passe'))";
$result = mysql_query($rq);
$nb = mysql_num_rows($result);
if($nb ==1)
{ $ligne = mysql_fetch_array($result, MYSQL_NUM);
//créer la requete
$rq = "UPDATE utilisateur SET mot_de_passe=PASSWORD('$mot_passe')
WHERE id_utilisateur=$ligne[0]";
$result= mysql_query($rq);
if (mysql_affected_rows()==1)//si c'est ok
{
include('menu.php');
//envoyer éventuellement un e-mail
?>
<div id="merci">
<p><b>Merci de vous vous être enregistré sur notre site.</b></p>
</div>
<?php
include('pied.php');

exit();
}
else
{echo"<p>Votre mot de passe n'apas pu être modifié.".
"<p></p>" . mysql_error() ."<p></p>";
}
}
else
{ $message .= "<pVotre nom d'utilisateur et votre mot de passe ne correspondent pas à un utilisateur enregistré.</p>";
}
mysql_close();
}
else
{ //Quelque chose n'est pas correct

$message .= "<p>Veuillez avoir l'obligeance de recommencer</p>";
}

}

if(isset($message))
{ echo "<font color='red'>$message</font>";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
<fieldset>
<legend>Veuillez remplir le formulaire ci-joint:</legend>

<div id="username">
<p><b>nom d'utilisateur :</b>
<input type="text" name="nom_d_utilisateur"
size="20" maxlength="40"
value="<?php if (isset($_POST['nom_d_utilisateur']))
echo $_POST['nom_d_utilisateur'];?>"/>
</p>
</div>

<div id="email">
<p><b>Mot de passe actuel :</b>
<input type="password" name="mot_passe"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_passe']))
echo $_POST['mot_passe'];?>"/>
</p>
</div>

<div id="mot_passe_1">
<p><b>Votre nouveau mot de passe :</b>
<input type="password" name="mot_de_passe1"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_de_passe1']))
echo $_POST['mot_de_passe1'];?>" />
</p>
</div>

<div id="mot_de_passe2">
<p><b>Confirnmez votre neauvou mot de passe :</b>
<input type="password" name="mot_de_passe2"
size="20" maxlength="40"
value="<?php if (isset($_POST['mot_de_passe2']))
echo $_POST['mot_de_passe2'];?>"/>
</p>
</div>

</fieldset>
<div id="button">
<input type="submit" name="submit"
value="S'inscire"/>
</div>
</div>

</form><!-- fin du formulaire-->

<?php
//fin du l'instruction conditionnelle principale
include('pied.php');
?>

</body>
</html>
Configuration: Windows Vista
Firefox 3.0.3

2 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Salut,

    si tu testes des variables à true il faut au moins les initialiser à cette valeur par défaut, elles deviendront false si erreur seulement donc:

    <body>
    <?php
    //définir le titre de la page et metre le menu
    $titre_page = "changer mot de passe";
    include ('menu.php');
    //init des variables
    $mot_passe=true;
    $mot_de_passe=true;
    $nom_d_utilisateur=true;
      ......
    
    1
  2. HotSkill Messages postés 70 Statut Membre 1
     
    dsl cela ne fontionne pas .... et revoici mon code

    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    <link href="mysql_connect_enregritrement.css" rel="stylesheet" type="text/css" />
    <link href="styles-enregistrer.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <?php
    //définir le titre de la page et metre le menu
    $titre_page = "changer mot de passe";
    include ('menu.php');
    //init des valeurs par défaut:
    $mot_passe =true;
    $mot_de_passe =true;
    $nom_d_utilisateur =true;

    if(isset($_POST['submit']))
    {//traiter le formulaire

    function echappement ($data)
    { global $bd;//connexion nécessaire
    if(ini_get('magic_quotes_gpc'))
    { $data = stripslashes($data);
    }
    return mysql_escape_string($data);
    }//fin de la fonction

    mysql_connect("localhost", "root", "");
    mysql_select_db("ma base");

    $message = NULL;

    //vérifier l'exitence du username
    if (empty($_POST['nom_d_utilisateur']))
    { $nom_d_utilisateur = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre nom d\'utilisateur</p>';
    }
    else
    { $nom_d_utilisateur = echappement($_POST['nom_d_utilisateur']);
    }

    //vérifier l'exitence du username
    if (empty($_POST['mot_passe']))
    { $mot_passe = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre ancien mot de passe</p>';
    }
    else
    { $mot_passe = echappement($_POST['mot_passe']);
    }

    //véréfier l' existence d'un mot de passe
    if(empty($_POST['mot_de_passe1']))
    { $mot_de_passe = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre nouveau mot de passe </p>';
    }
    else
    {if ($_POST['mot_de_passe1'] == $_POST['mot_de_passe2'])
    { $mot_de_passe = echappement($_POST['mot_de_passe1']);
    }
    else
    { $mot_de_passe= FALSE;
    $message .= '<p>Votre mot de passe est différent de celui que vous avez précédement déclaré</p>';
    }
    }

    if ( $mot_passe && $mot_de_passe && $nom_d_utilisateur)
    {

    $nom_d_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['nom_d_utilisateur']));
    $mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
    $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));

    $rq = "SELECT id_utilisateur FROM utilisateur
    WHERE (nom_d_utilisateur= '$nom_d_utilisateur' AND mot_de_passe=PASSWORD ('mot_passe'))";
    $result = mysql_query($rq)or die("Erreur lors de l'exécution de la requête.<br />\nMySQL a retourné :<br />\n". mysql_error());
    $nb = mysql_num_rows($result);
    if($nb == 1)
    { $ligne = mysql_fetch_array($result, MYSQL_NUM);
    //créer la requete
    $rq = "UPDATE utilisateur SET mot_de_passe=PASSWORD('$mot_de_passe')
    WHERE id_utilisateur=$ligne[0]";
    $result = mysql_query($rq);
    if (mysql_affected_rows()== 1)//si c'est ok
    {
    include('menu.php');
    //envoyer éventuellement un e-mail

    echo"<p><b>Votre nouveau mot de passe vient d'être modifié.</b></>";

    include('pied.php');

    exit();
    }
    else
    { echo"<p>Votre mot de passe n'a pas pu être modifié.".
    "<p></p>" . mysql_error() ."<p></p>";
    }
    }
    else
    { $message .= "<pVotre nom d'utilisateur et votre mot de passe ne correspondent pas à un utilisateur enregistré.</p>";
    }
    mysql_close();
    }
    else
    { //Quelque chose n'est pas correct

    $message .= "<p>Veuillez avoir l'obligeance de recommencer</p>";
    }

    }

    if(isset($message))
    { echo "<font color='red'>$message</font>";
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
    <fieldset>
    <legend>Veuillez remplir le formulaire ci-joint:</legend>

    <div id="username">
    <p><b>nom d'utilisateur :</b>
    <input type="text" name="nom_d_utilisateur"
    size="20" maxlength="40"
    value="<?php if (isset($_POST['nom_d_utilisateur']))
    echo $_POST['nom_d_utilisateur'];?>"/>
    </p>
    </div>

    <div id="email">
    <p><b>Mot de passe actuel :</b>
    <input type="password" name="mot_passe"
    size="20" maxlength="40"
    value="<?php if (isset($_POST['mot_passe']))
    echo $_POST['mot_passe'];?>"/>
    </p>
    </div>

    <div id="mot_passe_1">
    <p><b>Votre nouveau mot de passe :</b>
    <input type="password" name="mot_de_passe1"
    size="20" maxlength="40"
    value="<?php if (isset($_POST['mot_de_passe1']))
    echo $_POST['mot_de_passe1'];?>" />
    </p>
    </div>

    <div id="mot_de_passe2">
    <p><b>Confirnmez votre neauvou mot de passe :</b>
    <input type="password" name="mot_de_passe2"
    size="20" maxlength="40"
    value="<?php if (isset($_POST['mot_de_passe2']))
    echo $_POST['mot_de_passe2'];?>"/>
    </p>
    </div>

    </fieldset>
    <div id="button">
    <input type="submit" name="submit"
    value="Cahnger mon mot de passe"/>
    </div>
    </div>

    </form><!-- fin du formulaire-->

    <?php
    //fin du l'instruction conditionnelle principale
    include('pied.php');
    ?>

    </body>
    </html>

    quand je clique changer le mot passe rien se passe je reste a meme page et cela ne change meme pas le mot de passe dans la base de donnés
    -1
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Est ce que tu nommes bien ta page en .php ?

      ensuite qqs erreur s que je t'ai corrigé, vaoir les commentaires

      aussi c'est peut être un pb de copier coller mais il te manquait le < tout au début de la page pour <!DOCTYPE


      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Document sans titre</title>
      <link href="mysql_connect_enregritrement.css" rel="stylesheet" type="text/css" />
      <link href="styles-enregistrer.css" rel="stylesheet" type="text/css" />
      </head>
      
      <body>
      <?php
      function echappement ($data){
      	global $bd;//connexion nécessaire
      	if(ini_get('magic_quotes_gpc')){
      		$data = stripslashes($data);
      	}
      	return mysql_escape_string($data);
      }//fin de la fonction
      
      //définir le titre de la page et metre le menu
      $titre_page = "changer mot de passe";
      include ('menu.php');
      //init des valeurs par défaut:
      $mot_passe =true;
      $mot_de_passe =true;
      $nom_d_utilisateur =true;
      
      
      
      if(isset($_POST['submit'])){//traiter le formulaire
      	mysql_connect("localhost", "root", "");
      	mysql_select_db("ma base");
      
      	$message = NULL;
      
      	//vérifier l'exitence du username
      	if (empty($_POST['nom_d_utilisateur'])){
      		$nom_d_utilisateur = FALSE;
      		$message .= '<p>Vous avez oubli&eacute; d\'indiquer votre nom d\'utilisateur</p>';
      	}else{
      		$nom_d_utilisateur = echappement($_POST['nom_d_utilisateur']);
      	}
      
      	//vérifier l'exitence du mot de passe
      	if (empty($_POST['mot_passe'])){
      		$mot_passe = FALSE;
      		$message .= '<p>Vous avez oubli&eacute; d\'indiquer votre ancien mot de passe</p>';
      	}else{
      		$mot_passe = echappement($_POST['mot_passe']);
      	}
      
      	//véréfier l' existence d'un mot de passe
      	if(empty($_POST['mot_de_passe1'])){
      		$mot_de_passe = FALSE;
      	$message .= '<p>Vous avez oubli&eacute; d\'indiquer votre nouveau mot de passe </p>';
      	}else{
      		if ($_POST['mot_de_passe1'] == $_POST['mot_de_passe2']){
      			$mot_de_passe = echappement($_POST['mot_de_passe1']);
      		}else{
      			$mot_de_passe= FALSE;
      			$message .= '<p>Votre mot de passe est diff&eacute;rent de celui que vous avez pr&eacute;c&eacute;dement déclar&eacute;</p>';
      		}
      	}
      
      if ( $mot_passe && $mot_de_passe && $nom_d_utilisateur){
      
      	$nom_d_utilisateur = mysql_real_escape_string(htmlspecialchars($_POST['nom_d_utilisateur']));
      	$mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
      	$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe1']));//la tu avais une une erreur
      
      	$rq = "SELECT id_utilisateur FROM utilisateur
      	WHERE (nom_d_utilisateur= '$nom_d_utilisateur' AND mot_de_passe=PASSWORD ($mot_passe))";//la aussi il manquait le $ il ne ne faut pas dans ce cas les '
      	$result = mysql_query($rq)or die("Erreur lors de l'ex&eacute;cution de la requ&ecirc;te.<br />\nMySQL a retourn&eacute; :<br />\n". mysql_error());
      	$nb = mysql_num_rows($result);
      	if($nb == 1){
      		$ligne = mysql_fetch_array($result, MYSQL_NUM);
      		//créer la requete
      		$rq = "UPDATE utilisateur SET mot_de_passe=PASSWORD($mot_de_passe)
      		WHERE id_utilisateur='".$ligne[0]."'";//la aussi erreur
      		$result = mysql_query($rq);
      		
      		if (mysql_affected_rows()== 1)//si c'est ok
      		{
      		include('menu.php');
      		//envoyer éventuellement un e-mail
      
      
      		echo"<p><b>Votre nouveau mot de passe vient d'&ecirc;tre modifi&eacute;.</b></>";
      
      		include('pied.php');
      
      		exit();
      		}
      		else
      		{ echo"<p>Votre mot de passe n'a pas pu être modifi&eacute;."."<p></p>" . mysql_error() ."<p></p>";
      		}
      	}
      	else
      	{ $message .= "<pVotre nom d'utilisateur et votre mot de passe ne correspondent pas à un utilisateur enregistr&eacute;.</p>";
      	}
      mysql_close();
      }
      else
      { //Quelque chose n'est pas correct
      
      $message .= "<p>Veuillez avoir l'obligeance de recommencer</p>";
      }
      
      }
      
      if(isset($message))
      { echo "<font color='red'>$message</font>";
      }
      ?>
      <form action="<?php echo $_SERVER['PHP_SELF'];?>"method="post">
      <fieldset>
      <legend>Veuillez remplir le formulaire ci-joint:</legend>
      
      
      
      
      <div id="username">
      <p><b>nom d'utilisateur :</b>
      <input type="text" name="nom_d_utilisateur"
      size="20" maxlength="40"
      value="<?php if (isset($_POST['nom_d_utilisateur']))
      echo $_POST['nom_d_utilisateur'];?>"/>
      </p>
      </div>
      
      
      <div id="email">
      <p><b>Mot de passe actuel :</b>
      <input type="password" name="mot_passe"
      size="20" maxlength="40"
      value="<?php if (isset($_POST['mot_passe']))
      echo $_POST['mot_passe'];?>"/>
      </p>
      </div>
      
      
      <div id="mot_passe_1">
      <p><b>Votre nouveau mot de passe :</b>
      <input type="password" name="mot_de_passe1"
      size="20" maxlength="40"
      value="<?php if (isset($_POST['mot_de_passe1']))
      echo $_POST['mot_de_passe1'];?>" />
      </p>
      </div>
      
      
      <div id="mot_de_passe2">
      <p><b>Confirnmez votre nouveauu mot de passe :</b>
      <input type="password" name="mot_de_passe2"
      size="20" maxlength="40"
      value="<?php if (isset($_POST['mot_de_passe2']))
      echo $_POST['mot_de_passe2'];?>"/>
      </p>
      </div>
      
      
      </fieldset>
      <div id="button">
      <input type="submit" name="submit"
      value="Changer mon mot de passe"/>
      </div>
      </div>
      
      </form><!-- fin du formulaire-->
      
      
      <?php
      //fin du l'instruction conditionnelle principale
      include('pied.php');
      ?>
      
      </body>
      </html>
      -1