Modifer mot de passe dans la base de donnee

Bonjour, je suis actuellement entrain de créer une interface web, la page de connexion marche bien, cependant j'ai une autre page qui doit me permettre de changer le mdp d'un utilisateur : il existe deux comptes utilisateurs :utilisateur privilégié et utilisateur simple
Je ne sais pas du tout comment faire update sur la bdd quoi mais après niveau php je suis débutant, quelqu'un pourrait m'aider?
Voici la forme de ma page utilisateur.htm :

Utilisateur simple :
Nouveau mdp : (champ texte)
Nouveau mdp(vérification): (champ texte)

Utilisateur privilegie :
Nouveau mdp : (champ texte)
Nouveau mdp(vérification): (champ texte)

ENVOYER (bouton submit)

Ma base de donnée s'appelle "compte" il y a une seule table dedans qui sapelle utilisateurs . Cette table contient 3 champs :
- id_utilisateur
- type_utilisateur
- mdp_utilisateur

Il y a 2 enregistrements dans la table :

id_utilisateur type_utilisateur mdp_utilisateur
1 privilegie admin
2 simple test

La page utilisateurs.htm est la page ou jdoi mettre le code php pr faire la mise a jour du mdp

une parti du code ke jè comencé à fer :

<?php
mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
?>

<?php
if(isset($_POST) && !empty($_POST['newmdp']) && !empty($_POST['utilisateur'])) {
$sql = 'update utilisateurs set mdp ="'.$_POST['newmdp'].'" WHERE type_utilisateur="'.$_POST['utilisateur']).'"';

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

mysql_close();

echo 'Le nouveau mdp a bien été pris en compte';
}
else {
echo 'Les variables du formulaires ne sont pas déclarées';
}

je penses être loin du compte, j'espère que vous pourrez m'aider
merci davance

15 réponses

  1. salut
    le script me semble bon est ce que tu l'as testé?
    si son fais le et dis moi ce que cela donne.
    ok?
    0
    1. je viens de tester ça me raffiche ma page utilisateurs.php avec marqué en haut à gauche :" les variables du formulaires ne sont pas déclarées"

      voici le code de ma page :

      <?php
      mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
      mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
      ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <title>Utilisateur</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <link href="pageweb.css" rel="stylesheet" type="text/css">
      <style type="text/css">
      body
      {
      background-color: #FFFFCC;
      }

      table
      {
      /*#FFB56A -> Orange*/
      margin-top: 1%;
      margin-bottom: 1%;
      margin-left: 25%;
      margin-right: 25%;
      border-width: 2;
      border-style: solid;
      border-color: #000000;
      border-collapse: collapse;
      width: 50%;
      padding: 0px;
      }

      td
      {
      background-color: #FFFFFF;
      border-width: 2;
      border-style: solid;
      border-color: #000000;
      width: 50%;
      vertical-align: middle;
      text-align: left;
      }

      </style>
      </head>

      <body>

      <?php
      if(isset($_POST) && !empty($_POST['newmdp']) && !empty($_POST['utilisateur'])) {
      $sql = 'update utilisateurs set mdp ="'.$_POST['newmdp'].'" WHERE type_utilisateur="'.$_POST['utilisateur'].'"';

      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

      mysql_close();

      echo 'Le nouveau mdp a bien été pris en compte';
      }
      else {
      echo 'Les variables du formulaires ne sont pas déclarées';
      }
      ?>
      Utilisateur simple :</font></strong></p>
      <table width="69%" border="1">
      <tr>
      <td width="41%"><font color="#0000CC" size="2">Nouveau mot de passe
      :</font></td>
      <td width="59%"><form name="utilisateur" method="post" action="modifmdp.php">
      <font color="#0000CC">
      <input type="password" name="mdp">
      </font></form></td>
      </tr>
      <tr>
      <td><font color="#0000CC" size="2">Nouveau mot de passe (vérification)
      : </font></td>
      <td><form name="utilisateur" method="post" action="modifmdp.php">
      <font color="#0000CC">
      <input type="password" name="mdp">
      </font></form></td>
      </tr>
      </table>
      <p> </p>
      <p><strong><font color="#0000CC" size="3">Utilisateur privilégié
      :</font></strong></p>
      <table width="69%" border="1">
      <tr>
      <td width="42%" height="25"><font color="#0000CC" size="2">Nouveau mot
      de passe : </font></td>
      <td width="58%"><form name="form5" method="post" action="">
      <font color="#0000CC">
      <input type="password" name="mdp1">
      </font></form></td>
      </tr>
      <tr>
      <td><font color="#0000CC" size="2">Nouveau mot de passe (vérification)
      : </font></td>
      <td><form name="form6" method="post" action="">
      <font color="#0000CC">
      <input type="password" name="mdp1">
      </font></form></td>
      </tr>
      </table>
      <p> </p>

      <div align="center">
      <p align="center"> </p>
      <p align="center"> <input name="submit" type="submit" value="Envoyer" >  </p>
      </div>
      </form>
      <p align="center"> </p>

      </body>
      </html>

      merci de ton aide ça doit pas marcher au niveau des champs de texte je sais pas trop comment faire
      0
      1. excuses moi je voudrais avoir le code la page d'avant celle-ci(la page sont saisies les données qui doivent être traitées ).je veux faire une vérification à mon niveau.OK?
        0
        1. je comprends pas trop ce que tu me demandes ??? le code que je t'ai passé est le code de la page utilisateurs.php, page contenant le formulaire et les données qui doivent être traité (nouveau de passe).
          Voici la forme de ma page utilisateur.php :

          Utilisateur simple :
          Nouveau mdp : (champ texte)
          Nouveau mdp(vérification): (champ texte)

          Utilisateur privilegie :
          Nouveau mdp : (champ texte)
          Nouveau mdp(vérification): (champ texte)

          ENVOYER (bouton submit)

          Désolé chui pas très bon en programmation
          merci de me consacrer du temps en tout cas
          0
          1. salut fais un echo($_POST) dans ton programme et colles le résultat ici
            0
            1. j'ai modifié mon code depuis le voici je vois pas trop ce qui déconne il me dit que mon mot de passe est incorrect

              voici mon code UTILISATEURS.PHP :

              <?php
              //// On appelle la session
              session_start();
              ////je verifie que la ssession est remplie
              if (empty($_SESSION['client'] ))
              {
              header ("Location:index.htm");
              exit();
              }
              //affichage des donnée de l'utilisateur
              ?>
              <?php
              mysql_connect("localhost", "root", "adminserv") or die("erreur de connexion au serveur");
              mysql_select_db("compte") or die("erreur de connexion a la base de donnees");
              ?>
              <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
              <html>
              <head>
              <title>Utilisateur</title>
              <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

              <body>

              <?php
              if (isset($_POST['mdpS']) AND isset($_POST['newmdpS']))
              {
              $retour = mysql_query("SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur ='simple'");
              if ($retour == $_POST['mdpS'])
              {
              $sql = 'update utilisateurs set mdp_utilisateur ="'.$_POST['newmdpS'].'" WHERE type_utilisateur="'.$_POST['simple'].'"';
              mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

              }
              else
              {
              echo "Mot de passe incorrect, veuillez recommencer...";
              }
              }
              else
              {
              echo "Veuillez remplir les champs du formulaire !";
              }

              if (isset($_POST['mdpP']) AND isset($_POST['newmdpP']))
              {
              $retour = mysql_query("SELECT mdp_utilisateur FROM utilisateurs WHERE type_utilisateur ='privilegie'");
              if ($retour == $_POST['mdpP'])
              {
              $sql = 'update utilisateurs set mdp_utilisateur ="'.$_POST['newmdpP'].'" WHERE type_utilisateur="'.$_POST['privilegie'].'"';
              mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

              }
              else
              {
              echo "Mot de passe incorrect, veuillez recommencer...";
              }
              }
              else
              {
              echo "Veuillez remplir les champs du formulaire !";
              }

              mysql_close();
              ?>

              <form name="form1" method="post" action="utilisateurs.php">
              <p><strong><font color="#0000CC" size="3">Utilisateur simple :</font></strong></p>
              <table width="69%" border="1">
              <tr>
              <td width="41%"><font color="#0000CC" size="2">Ancien mot de passe
              :</font></td>
              <td width="59%"> <font color="#0000CC">
              <input type="password" name="mdpS">
              </font></td>
              </tr>
              <tr>
              <td><font color="#0000CC" size="2">Nouveau mot de passe : </font></td>
              <td> <font color="#0000CC">
              <input type="password" name="newmdpS">
              </font></td>
              </tr>
              </table>
              <p> </p>
              <p><strong><font color="#0000CC" size="3">Utilisateur privilégié
              :</font></strong></p>
              <table width="69%" border="1">
              <tr>
              <td width="42%" height="25"><font color="#0000CC" size="2">Ancien
              mot de passe : </font></td>
              <td width="58%"> <font color="#0000CC">
              <input type="password" name="mdpP">
              </font></td>
              </tr>
              <tr>
              <td><font color="#0000CC" size="2">Nouveau mot de passe : </font></td>
              <td> <font color="#0000CC">
              <input type="password" name="newmdpP">
              </font></td>
              </tr>
              </table>
              <p> </p>
              <div align="center">
              <p align="center"> </p>
              <p align="center">
              <input name="submit" type="submit" value="Envoyer" >
                </p>
              </div>
              <p> </p>
              </form>
              <p> </p>
              <p> </p>
              <div align="center"></div>
              </form>
              <p align="center"> </p>
              </td>
              </tr>
              <tr>

              </tr>
              </table>
              </body>
              </html>
              0
              1. bonjour à tous,
                personne ne peut m'aider svp?
                0
                1. salut
                  je te demande de faire un print_r($_POST)à l'intérieur du code de la page histoire de savoir ce que contient la variable $_post.
                  ok?colles le résultat ici
                  j'attends
                  0
                  1. ok ça m'affiche Array( [mdpS] =>test [new mdpS] =>test[mdpP] =>admin[newmdpP]=>admin[submit] =>envoyer)

                    quand j'essaye de modifier le mdp

                    merci de ton aide
                    0
                    1. excuses moi reexpliques moi ce que tu veux faire.Tu as une page sur laquelle le mot de passe est saisie et une autre qui te donne le résultat?
                      si c'est cela fais le print_r sur la page de résultat
                      0
                      1. Voici la forme de ma page utilisateur.php :

                        Utilisateur simple :
                        Ancien mdp : (champ texte)
                        Nouveau mdp : (champ texte)

                        Utilisateur privilegie :
                        Ancien mdp : (champ texte)
                        Nouveau mdp : (champ texte)

                        ENVOYER (bouton submit)

                        ce que je veux faire c'est que lorsque l'on aura inséré dans les champs l'ancien et nouveau mot de passe puis cliqué sur le bouton envoyer et bien la meme page se réafiche en disant simplement votre mot de passe a bien été changé.
                        0
                        1. je teste la page et je te fais signe
                          0
                          1. salut , alors t'as eu le temps de tester? j'ai essayé de bidouiller un peu mais ça ne fonctionne toujours pas.
                            merci de ton aide
                            @+
                            0
                        2. Tu as oublié de faire fetch array dans ta réponse sql
                          0