Changer de password en étant connecter

jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   -  
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Je n'arrive pas a faire le code php pour changer de mot de passe une fois connecté sur mon site.

<?php
session_start();
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
if(isset($_POST['submit']))
{
$password = htmlspecialchars(trim($_POST['password']));
$password = htmlspecialchars(trim($_POST['password']));
$password = htmlspecialchars(trim($_POST['password']));
if($password)
{
$connect = mysql_connect('**','***','***') or die('error');
mysql_select_db('momentdelirant');
$query=mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$rows= mysql_num_rows($query);
if($rows==1)
{
$password? = mysql_query("UPDATE users SET password='$password' WHERE username='$username'");
die('Votre password a été changer <a href="index.php"> connectez</a> vous');
}else echo"Votre ancien password est incorrect";
}else echo"Veuillez saisir tous les champs";
}
echo'
<form method="POST" action="changepassword.php">
<p>Votre ancien mot de passe : </p>
<input type="password" name="password">
<p>Votre nouveau mot de passe : </p>
<input type="password" name="newpassword">
<p>Repetez votre nouveau passe mot de passe :</p>
<input type="password" name="repeatnewpassword"><br /><br />
<input type="submit" value="Changer de password" name="submit">
</form>
';
}else
{
header('Location:login.php');
}


?>


Quand j'entre un mauvais mot de passe pour l'ancien mot de passe, il me dit bien erreur et lorsque je met le bon et les nouveaux sa me dit bien Votre password a été changer connectez vous. SAUF que je suis encore connecter et donc pas possible de me connecter et même en deconnectant après je peux que me connecter avec mon ancien password....

Merci de bien vouloir m'aider
A voir également:

1 réponse

Utilisateur anonyme
 
$password = htmlspecialchars(trim($_POST['password'])); 
$password = htmlspecialchars(trim($_POST['password'])); 
$password = htmlspecialchars(trim($_POST['password'])); 


Ces lignes ne vont pas non?

$password = htmlspecialchars(trim($_POST['password'])); 
$newpassword = htmlspecialchars(trim($_POST['newpassword'])); 
$repeatnewpassword = htmlspecialchars(trim($_POST['repeatnewpassword'])); 


Ensuite un peu plus bas:
$password? = mysql_query("UPDATE users SET password='$newpassword' WHERE username='$username'"); 


N'oublis pas de tester si le password répété est le même aussi.

A+
0
jordxn Messages postés 356 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,
merci de votre aide mais dans ma bd j'ai qu'un champ password donc j'ai :

<?php
session_start();
if(isset($_SESSION['username']))
{
$username=$_SESSION['username'];
if(isset($_POST['submit']))
{
$password = htmlspecialchars(trim($_POST['password']));
if($password)
{
$connect = mysql_connect(****','***',***') or die('error');
mysql_select_db('momentdelirant');
$query=mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$rows= mysql_num_rows($query);
if($rows==1)
{
$password? = mysql_query("UPDATE users SET password='$password' WHERE username='$username'");
die('Votre password a été changer <a href="index.php"> connectez</a> vous');
}else echo"Votre ancien password est incorrect";
}else echo"Veuillez saisir tous les champs";
}
echo'
<form method="POST" action="changepassword.php">
<p>Votre ancien mot de passe : </p>
<input type="password" name="password">
<p>Votre nouveau mot de passe : </p>
<input type="password" name="password">
<p>Repetez votre nouveau passe mot de passe :</p>
<input type="password" name="password"><br /><br />
<input type="submit" value="Changer de password" name="submit">
</form>
';
}else
{
header('Location:login.php');
}


?>
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Est-ce normal qu'on a $password? : avec le point d'interrogation a la fin de la variable ? Et as-tu vérifié que ta connexion mysql était de cette forme : $connect = mysql_connect('****','***','***') or die('error'); car il te manque 2 ', je ne sais pas après si tu n'as pas fait exprès lorsque tu as voulu enlever les informations de ta base de données.
0