Changer le mot de passe d'un membre
louffy87
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
louffy87 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
louffy87 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonsoir, je bosse sur un code depuis presque un mois, je suis bientot à terme mais il se trouve que j'ai un soucis.
Dans le projet, un utilisateur dèja connecté aura la possibilité de changer son mot de passe s'il le désire. Mais j'ai une erreur au niveau de la ligne 40 de mon script :Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\loufproject\projet_de_licence\rh\change_passe_script.php on line 40
Mon code est le suivant
<body>
<?php
include 'header_rh.php';
?>
<h3>Modifer infos agent</h3>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "pers" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["id"] ;
//requête SQL:
$sql = "SELECT *
FROM rh
WHERE id_rh = ".$id ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<fieldset>
<form action="change_passe_script.php" method="post">
<input type="hidden" name="id" value="<?php echo($id) ;?>"><br>
<?php echo $_SESSION['login'];?><br>
<label>Renseigner votre ancien Password</label>
<input type="password" name="old_password" required><br>
<label>Nouveau Password</label>
<input type="password" name="new_password" required><br>
<label>Répétez le Password</label>
<input type="password" name="repeat_new_password" required><br>
<input type="submit" name="change_password" value="Changer">
</form>
<br><br><br><br><br><br><br>
</fieldset>
<?php
}
?>
<?php
include 'footer_rh.php';
?>
</body>
le script est :
<?php
include 'parametre.ini';
if (isset($_POST['change_password'])){
$old_password = $_POST['old_password'];
$old_password_crypte = sha1($old_password);
$new_password = $_POST['new_password'];
$new_password_crypte = sha1($new_password);
$repeat_new_password = $_POST['repeat_new_password'];
$repeat_new_password_crypte = sha1($repeat_new_password);
connecte(HOST, USER, PASSWORD);
use_db (DB);
$log = $_SESSION['login'];
$sql= " SELECT password_rh FROM rh WHERE login_rh ='$log' && password_rh= '$old_password_crypte' ";
$result = execute_query($sql);
$data= mysql_num_rows($result);
if($data==1){
if ($new_password == $repeat_new_password) {
connecte(HOST, USER, PASSWORD);
use_db (DB);
$modif = "UPDATE rh SET password_rh = '$new_password_crypte'
WHERE login_rh = $log";
$result_modif = mysql_query($modif) ;
$data_modif = mysql_num_rows($result_modif); // c'est ici que j'ai l'erreur
if ($data_modif == 1) {
echo 'Bien';
}
}
else {?>
<script>
alert('Les deux mots de passe doivent être identiques!!!');
document.location.href = "index.php";
</script>
<?php }
}
else {
?>
<script>
alert('Le mot de passe saisie n\'est pas le bon.\n\
Veuillez reassayer SVP.');
document.location.href = "index.php";
</script>
<?php }
}
?>
merci de votre aide
Dans le projet, un utilisateur dèja connecté aura la possibilité de changer son mot de passe s'il le désire. Mais j'ai une erreur au niveau de la ligne 40 de mon script :Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\loufproject\projet_de_licence\rh\change_passe_script.php on line 40
Mon code est le suivant
<body>
<?php
include 'header_rh.php';
?>
<h3>Modifer infos agent</h3>
<?php
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "pers" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["id"] ;
//requête SQL:
$sql = "SELECT *
FROM rh
WHERE id_rh = ".$id ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<fieldset>
<form action="change_passe_script.php" method="post">
<input type="hidden" name="id" value="<?php echo($id) ;?>"><br>
<?php echo $_SESSION['login'];?><br>
<label>Renseigner votre ancien Password</label>
<input type="password" name="old_password" required><br>
<label>Nouveau Password</label>
<input type="password" name="new_password" required><br>
<label>Répétez le Password</label>
<input type="password" name="repeat_new_password" required><br>
<input type="submit" name="change_password" value="Changer">
</form>
<br><br><br><br><br><br><br>
</fieldset>
<?php
}
?>
<?php
include 'footer_rh.php';
?>
</body>
le script est :
<?php
include 'parametre.ini';
if (isset($_POST['change_password'])){
$old_password = $_POST['old_password'];
$old_password_crypte = sha1($old_password);
$new_password = $_POST['new_password'];
$new_password_crypte = sha1($new_password);
$repeat_new_password = $_POST['repeat_new_password'];
$repeat_new_password_crypte = sha1($repeat_new_password);
connecte(HOST, USER, PASSWORD);
use_db (DB);
$log = $_SESSION['login'];
$sql= " SELECT password_rh FROM rh WHERE login_rh ='$log' && password_rh= '$old_password_crypte' ";
$result = execute_query($sql);
$data= mysql_num_rows($result);
if($data==1){
if ($new_password == $repeat_new_password) {
connecte(HOST, USER, PASSWORD);
use_db (DB);
$modif = "UPDATE rh SET password_rh = '$new_password_crypte'
WHERE login_rh = $log";
$result_modif = mysql_query($modif) ;
$data_modif = mysql_num_rows($result_modif); // c'est ici que j'ai l'erreur
if ($data_modif == 1) {
echo 'Bien';
}
}
else {?>
<script>
alert('Les deux mots de passe doivent être identiques!!!');
document.location.href = "index.php";
</script>
<?php }
}
else {
?>
<script>
alert('Le mot de passe saisie n\'est pas le bon.\n\
Veuillez reassayer SVP.');
document.location.href = "index.php";
</script>
<?php }
}
?>
merci de votre aide
A voir également:
- Changer le mot de passe d'un membre
- Changer dns - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
2 réponses
Bonjour,
etant donné que mysql_num_rows n'agit que sur les SELECT, ("compte le nb de ligne retournées),
cette fonction ne peut pas agir ici sur ton Update.
Utilise cette fonction : mysql_affected_rows().
Sinon, sache que mysql_query($requete) retourne un booléen à l'execution de la requete.
Donc tu peux simplement faire ça au moment de l'execution :
Cordialement
etant donné que mysql_num_rows n'agit que sur les SELECT, ("compte le nb de ligne retournées),
cette fonction ne peut pas agir ici sur ton Update.
Utilise cette fonction : mysql_affected_rows().
Sinon, sache que mysql_query($requete) retourne un booléen à l'execution de la requete.
Donc tu peux simplement faire ça au moment de l'execution :
if(mysql_query($modif)===true){
echo "BIEN !";
}
Cordialement
Merci gign44, j'ai essayé les deux solutions que tu m'as proposé, mais sa ne marche pas. Le premier j'ai la mm erreur qu'avec mysql_num_rows, et le second donne en resultat une page blanche
CDT