Perdu dans le php :)!!!!!

Résolu/Fermé
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 - 5 oct. 2008 à 16:18
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 - 5 oct. 2008 à 21:03
Bonjour,
mon code ne fait rien du tout quand je clique sur changer mon mot de passe je reste a meme page et en plus cela ne change meme pas le mot de passe donc revoici mon code corrigé:


<!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 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>
A voir également:

3 réponses

Utilisateur anonyme
5 oct. 2008 à 16:34
assai de mettre un dièse a la place de <?php echo $_SERVER['PHP_SELF'];?> ( <form action="#"method="post">
0
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 1
5 oct. 2008 à 16:38
non cela change rien merci quand meme ....
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
5 oct. 2008 à 19:01
Bonsoir,
il me semble avoir déja répondu à ce problème

tu mets un test:
if ( $mot_passe && $mot_de_passe && $nom_d_utilisateur)


ça veut dire que tu verifies que $mot_passe etc sont à true

à quel endroit dans ton code ils passent à true ???

alors si tu veux que ça marche mets au début de ton script

//init des valeurs par défaut:
$mot_passe =true;
$mot_de_passe =true;
$nom_d_utilisateur =true;
0
HotSkill Messages postés 65 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 26 septembre 2010 1
5 oct. 2008 à 21:03
dsl ceci ne fonctionne pas
0