Bonjour.
J'ai décidé de passer mes requêtes qui étaient en MySQLi-Prepared en PDO.
Mais j'ai un sérieux souci au niveau de la requête de mise à jour des Mots de passe représentée par la fonction modifyPass() (du Fichier processUser.php) qui n'applique pas la nouvelle modification de Mot de Passe dans la Base de Données et aucune erreur non plus n'est signalée et pourtant j'arrive à modifier avec succès les Emails grâce à sa fonction modifyEmail().
Et voici son le Code du Formulaire HTML traitant la modification des Mot s de passe qui ne marche pas du tout:
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 function dbQuery($sql) { $args = func_get_args(); if($args != null){ array_shift($args); /* if(is_array($args) && count($args) === 1){ $tab = $args[0]; $args = (is_array($args)) ? $tab : array($tab); }*/ } $db = new MySQL(); $result = ($args != null) ? $db->query($sql,$args) : $db->query($sql); return $result; } /* Modify a user */ function modifyEmail() { $userId = (int)$_POST['hidUserId']; $new_email = $_POST['new_email']; $sql = "UPDATE tbl_users SET email = ? WHERE id = ?"; dbQuery($sql,$new_email,$userId); header('Location: index.php?view=email&error=' . urlencode('Email modifié avec succès.')); } /* Modify a Password */ function modifyPass() { $userId = (int)$_POST['hidUserId']; $new_password = $_POST['new_password']; $sql = "UPDATE tbl_users SET pwd = ? WHERE id = ?"; $new_pwd_hash = hash('sha512',$new_password); // hash512 dbQuery($sql,$new_pwd_hash,$userId); $userEmail = "SELECT email FROM tbl_users WHERE id = ?"; $result = dbQuery($userEmail,$userId); extract(dbFetchAssoc($result)); $subject = "Mot de passe modifié"; $mail_data = array('to' => $email, 'sub' => $subject, 'msg' => 'change_pwd', 'pwd' => $pwd); send_email($mail_data); }
Pourquoi donc le changement des Mots de passe de ma requête modifyPass() ne fonctionne toujours pas malgré mes nombreuses tentative à corriger ce bug alors que se modifie avec succès le changement des Emails ???
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 <form action="processUser.php?action=modifyPass" method="post" > <table width="500px" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable"> <tr> <td colspan="2" class="label">Modifier le Mot de Passe </td> </tr> <tr> <td width="150" class="label">Nom d'utilisateur</td> <td class="content"> <input name="txtUserName" type="text" class="box" id="txtUserName" value="<?php echo $fname. ' '.$lname; ?>" size="30" readonly="readonly"> <input name="hidUserId" type="hidden" id="hidUserId" value="<?php echo $id; ?>"> </td> </tr> <tr> <td width="150" class="label">Nouveau Mot de Passe</td> <td class="content"> <span id="sprypwd"> <input name="new_password" type="password" class="box" id="pass" size="30"> <br/> <span class="passwordRequiredMsg">Nouveau Mot de Passe obligatoire.</span> <span class="passwordMinCharsMsg">Vous devez spécifier au moins 6 caractères.</span> <span class="passwordMaxCharsMsg">Vous devez spécifier au plus 10 caractères.</span> </span> </td> </tr> <tr> <td width="150" class="label">Confirmer</td> <td class="content"> <span id="sprycpwd"> <input name="new_password" type="password" class="box" id="pass" size="30"> <small> </small> <br/> <span class="confirmRequiredMsg">Confirmer Nouveau Mot de Passe.</span> <span class="confirmInvalidMsg">Les valeurs du mot de passe de confirmation ne correspondent pas.</span> </span> </td> </tr> <tr> <td width="150"> </td> <td width="10"> </td> <td> </td> </tr> <tr> <td colspan="3"><div align="center"> <input name="btnModify" type="submit" class="bluebox" id="btnModify" value="Valider" onClick="return checkPassword();"> </div></td> </tr> <tr> <td colspan="3"> </td> </tr> </table> </form>
Aidez-moi donc à corriger ce qui semble ne pas fonctionner au niveau de la fonction modifyPass() qui traite le changement des Mots de Passe car le changement ne s'applique pas du tout.
Merci d'avance.
Partager