Changer sont mot de passe

Narfolius Messages postés 202 Statut Membre -  
Narfolius Messages postés 202 Statut Membre -
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

2 réponses

  1. wAxxx Messages postés 455 Statut Membre 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
    1. Narfolius Messages postés 202 Statut Membre 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
    2. wAxxx Messages postés 455 Statut Membre 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
    3. Narfolius Messages postés 202 Statut Membre 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
    4. wAxxx Messages postés 455 Statut Membre 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
    5. Narfolius Messages postés 202 Statut Membre 7
       
      Toujours la même phrase =/
      0
  2. Narfolius Messages postés 202 Statut Membre 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