IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire changement de mot de passe php / phpMyAdmin


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut Formulaire changement de mot de passe php / phpMyAdmin
    Bonsoir j'ai un petit probleme : j'essaye depuis quelques jours de finaliser mon formulaire de modification de mot de passe qui logiquement apres traitement des informations saisies devrait effectuer une requete SQL update pour modifier ma table dans ma base de donnée. Apres saisies des mdp l'erreur suivante s'affiche :

    Query was empty

    Si quelqu'un aurait une idée elle sera la bienvenue.Merci et bonne soirée.

    code formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    	<head>
    		<title>Changement de mot de passe</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet"type="text/css"href="designform.css">
    	</head>
    	<body>
    	<form action="newpass.php" method='post'>
    <table>
    <tr><td>Ancien mot de passe :</td><td> <input type="password" name="oldpass"size="20"/></td></tr>
    <tr><td>Nouveau mot de passe : </td><td> <input type="text" name="newpass1"size="20"/></td></tr>
    <tr><td>Confirmation mot de passe : </td><td> <input type="text" name="newpass2" size="20"/></td></tr>
    <TR>
    <TD><INPUT TYPE="SUBMIT" VALUE="Mise a jour"></TD>
    </TR>
     
    </TABLE>
    </form>
     
    </body>
    </html>
    code traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    	<head>
    		<title>New pass</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet"type="text/css"href="designform.css">
    	</head>
    	<body>
    <?php
    $oldpass = $_POST["oldpass"];
    $newpass1 = $_POST["newpass1"];
    $newpass2 = $_POST["newpass2"];
    $login = $_POST["login"];
    $pass = $_POST["pass"];
     
     
    require_once "connect.php";
     
    //si oldpass est bon et newpass1 = newpass2
    if( $pass == $oldpass and $newpass1 == $newpass2){;
     
    mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");
    //$sql = sprintf("UPDATE utilisateur SET pass = $newpass1 FROM utilisateur WHERE login = $login");
    GetSQLValueString($newpass1,"text");
    GetSQLValueString($login,"text");
    }
     
    $rs = mysql_query($sql1) or die ("Erreur : <br/><code>" . $sql1 . "<code><br/>--<br/>" 
    . "<span class='alert'>" . mysql_error() . "</span>");
     
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
     
    }
    //si ancien mot de pass incorrect
    if  ($pass != $oldpass){;
    	echo 'Votre ancien mot de pass a été mal renseigné';
    	}
    	//si  les 2 mdp sont differents
    if ($newpass1 != $newpass2){;
    	echo 'Vous avez tapé deux mots de passe différents';
    	}
     
     
     
     
    ?>
    	</body>
    	</html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il n'y a aucune requete dans ce que tu nous montres.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut
    mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");

    nn?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $sql1 n'est pas défini ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    mysql_query("UPDATE utilisateur SET pass='$newpass1' login = '$login'");
    //$sql = sprintf("UPDATE utilisateur SET pass = $newpass1 WHERE login = $login");
    GetSQLValueString($newpass1,"text");
    GetSQLValueString($login,"text");
    }
     
    $rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>"
    . "<span class='alert'>" . mysql_error() . "</span>");
    sql1 était un test j'ai oublié de supprimé le "1" et à la base je remplaçai le mysql query par le $sql=sprintf... en pensant que c'était sa la requete

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    sql1 était un test j'ai oublié de supprimé le "1"
    Le problème est le même : $sql n'est pas défini puisque ta ligne est commentée.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut
    Donc j'ai juste a enlever les "//"?

  8. #8
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par sef313 Voir le message
    Donc j'ai juste a enlever les "//"?
    normalement non puisque tu exécutes la requête juste avant
    j'ai l'impression que tu as mélangé plusieurs code, regarde tout ton code ligne par ligne en vérifiant ce qu'il fait et tu verras qu'il y a des lignes qui posent problème

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 29
    Par défaut
    Voila apres modifications mon script change mon mot de passe de la base de donnée mais le probléme c'est qu'il le fait sans prendre en compte les conditions ("if"): même si l'ancien mot de passe entré ne correspond pas avec celui de la base de donnée ou que les 2 mots de passes entrés dans le formulaire ne soit pas les mêmes il change celui de la base de donnée quand même. Le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    	<head>
    		<title>New pass</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet"type="text/css"href="designform.css">
    	</head>
    	<body>
    <?php
    $oldpass = $_POST["oldpass"];
    $newpass1 = $_POST["newpass1"];
    $newpass2 = $_POST["newpass2"];
    $login = $_POST["login"];
     
    require_once "connect.php";
     
    $reponse = mysql_query("SELECT pass FROM utilisateur  WHERE login = '$login'");
    $donnees = mysql_fetch_array($reponse);
     
    //si ancien mot de pass incorrect
    if  ($donnees != $oldpass)
    	{echo 'Votre ancien mot de pass a été mal renseigné';}
     
    	//si  les 2 mdp sont different
    elseif ($newpass1 != $newpass2)
    	{echo 'Vous avez tapé deux mots de passe différents';}
     
    //si oldpass est bon et newpass1 = newpass2
    while( $donnees == $oldpass and $newpass1 == $newpass2);
     
    $sql = sprintf("UPDATE utilisateur SET pass = $newpass1  WHERE login = '$login'");
    GetSQLValueString($newpass1,"text");
    GetSQLValueString($login,"text");
     
     
    $rs = mysql_query($sql) or die ("Erreur : <br/><code>" . $sql . "<code><br/>--<br/>" 
    . "<span class='alert'>" . mysql_error() . "</span>");
     
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;}
     
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
    	   return $theValue;
      }
     
     
    {echo 'Votre mot de passe à été changé'; 
    }
    mysql_close($db);
     
    ?>
    	</body>
    	</html>
    Si quelqu'un a une solution je suis preneur, merci d'avance.

    et php me renvoi le message :"Votre ancien mot de pass a été mal renseignéVotre mot de passe à été changé "

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire de changement de mot de passe
    Par missmilie dans le forum Langage
    Réponses: 4
    Dernier message: 01/07/2008, 13h28
  2. Formulaire de changement de mot de passe
    Par aityahia dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/06/2008, 10h40
  3. MySQL encrypt et changement de mot de passe
    Par Michaël dans le forum Requêtes
    Réponses: 6
    Dernier message: 27/11/2005, 17h37
  4. Probleme avec changement du mot de passe utilisateur
    Par Davenico dans le forum Outils
    Réponses: 2
    Dernier message: 19/12/2003, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo