Changer sont mot de passe

Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -  
Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un script pour que les joueurs puissent changer leurs mot de passe.
A la place des ******, j'ai mis les donnés requise ;)

Cela ne veut pas fonctionner

<?php
session_start();
if (!isset($_SESSION['login'])) {
	header ('Location: index.php');
	exit();
}

// CONNEXION MYSQL
       $base = mysql_connect ('******', '******', '*****'); 
       mysql_select_db ('*****, $base); 

//si le membre a cliqué sur modifier le mot de passe
if (isset($_GET['modifier']) && $_GET['modifier'] == 1)
{

//on fait une requete pour récuperer l'ancien mot de passe
$requete = mysql_query("SELECT * FROM table WHERE login='$login");
$oldpass=$table['pass'];

//si l'ancien mot de passe est le bon
if ($pass == $oldpass) {

// On recupere les valeurs
              if($motdepasse2==$motdepasse1) // Si les deux mdps correspondent on insère dans la BDD
{

$sql = mysql_query("UPDATE tableSET motdepasse='$motdepasse1' WHERE login='$login'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

}
}
}
?>


Ensuite le code html

<form action="?modifier=1" method="post">
Votre ancien mot de passe : <input name="pass" type="password" id="pass"><br>
Votre nouveau mot de passe : <input name="motdepasse1" type="password" id="motdepasse1"><br>
Confirmation du  mot de passe : <input name="motdepasse2" type="password" id="motdepasse2"><br>
    <br><br>
<input type=submit value="Changer mon mot de passe"></form>



Merci d'avance pour votre aide
A voir également:

2 réponses

wAxxx Messages postés 421 Date d'inscription   Statut Membre Dernière intervention   46
 
C'est normal qu'il ne fait rien puisque la variable $oldpass ne contient rien .
ajoutez cette ligne $table = mysql_fetch_array($requete); juste avant le ligne $oldpass=$table['pass'];
0
Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   7
 
Ca me dit:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/u160466558/public_html/changer.php on line 18
Erreur SQL !
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='' WHERE login=''' at line 1
0
wAxxx Messages postés 421 Date d'inscription   Statut Membre Dernière intervention   46
 
normal, puisque vous avez une erreur dans votre requete sql que mysql_fetch_array affiche un warning puisque la valeur dont tu l'a fournit est vide
let ce code à la place de l'autre

<?php 
session_start(); 
if (!isset($_SESSION['login'])) { 
 header ('Location: index.php'); 
 exit(); 
} 

// CONNEXION MYSQL 
       $base = mysql_connect ('******', '******', '*****');  
       mysql_select_db ('*****, $base);  

//si le membre a cliqué sur modifier le mot de passe 
if (isset($_GET['modifier']) && $_GET['modifier'] == 1) 
{ 

//on fait une requete pour récuperer l'ancien mot de passe 
$sql= "SELECT 1 FROM table WHERE login='$login'"; 
$requete = mysql_query($sql) or die (mysql_error()); 
$resultat=mysql_fetch_array($requete); 
$oldpass=$resultat['pass']; 

//si l'ancien mot de passe est le bon 
if ($pass == $oldpass) { 

// On recupere les valeurs 
              if($motdepasse2==$motdepasse1) // Si les deux mdps correspondent on insère dans la BDD 
{ 

$sql = mysql_query("UPDATE tableSET motdepasse='$motdepasse1' WHERE login='$login'") or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

} 
} 
} 
?> 



Ensuite le code html 

<form action="?modifier=1" method="post"> 
Votre ancien mot de passe : <input name="pass" type="password" id="pass"><br> 
Votre nouveau mot de passe : <input name="motdepasse1" type="password" id="motdepasse1"><br> 
Confirmation du  mot de passe : <input name="motdepasse2" type="password" id="motdepasse2"><br> 
    <br><br> 
<input type=submit value="Changer mon mot de passe"></form> 




0
Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci

Je vien de tester, il reste une phrase

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table WHERE login=''' at line 1
0
wAxxx Messages postés 421 Date d'inscription   Statut Membre Dernière intervention   46
 
maintenant le problème vient du deuxieme requête celle de mise à jour change la comme suit :
$sql= "UPDATE table SET motdepasse='$motdepasse1' WHERE login='$login'";
$query = mysql_query() or die(mysql_error()); 
0
Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   7
 
Toujours la même phrase =/
0
Narfolius Messages postés 180 Date d'inscription   Statut Membre Dernière intervention   7
 
Rien à faire

<?php 
session_start(); 
if (!isset($_SESSION['login'])) { 
 header ('Location: index.php'); 
 exit(); 
} 

// CONNEXION MYSQL 
       $base = mysql_connect ('******', '*******', '******'); 
       mysql_select_db ('******', $base);  

//si le membre a cliqué sur modifier le mot de passe 
if (isset($_GET['modifier']) && $_GET['modifier'] == 1)
{
$login = $_SESSION['login'];

//on fait une requete pour récuperer l'ancien mot de passe 
$sql= "SELECT 1 FROM table WHERE login='$login'"; 
$requete = mysql_query($sql) or die (mysql_error()); 
$resultat=mysql_fetch_array($requete); 
$oldpass=$resultat['pass']; 


//si l'ancien mot de passe est le bon 
if ($pass == $oldpass) { 

// On recupere les valeurs 
              if($motdepasse2==$motdepasse1) // Si les deux mdps correspondent on insère dans la BDD 
{ 

$sql= "UPDATE table SET motdepasse='$motdepasse1' WHERE login='$login'";
$query = mysql_query() or die(mysql_error()); 

} 
} 
} 
?> 

0