Besoin d expert en php

Fermé
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 - 3 oct. 2008 à 12:59
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 8 oct. 2008 à 17:44
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>

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
3 oct. 2008 à 19:00
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
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 1
7 oct. 2008 à 00:32
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
8 oct. 2008 à 17:44
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