⊗ppPmAuPCh 429 of 447 menu

Changer le mot de passe en PHP

Il est impossible de simplement changer le mot de passe dans l'espace personnel. En effet, l'utilisateur pourrait laisser son ordinateur sans surveillance (par exemple, au bureau) tout en étant connecté à notre site. Dans ce cas, si on autorisait un changement simple du mot de passe, un malfaiteur malintentionné pourrait le changer, ce qui, bien entendu, serait très problématique.

Il est nécessaire de faire en sorte que le changement de mot de passe exige la saisie de l'ancien mot de passe.

Implémentons la page changePassword.php, sur laquelle l'utilisateur verra un formulaire avec deux champs - dans le premier, il devra saisir son ancien mot de passe, et dans le second - le nouveau :

<form action="" method="POST"> <input name="old_password"> <input name="new_password"> <input type="submit" name="submit"> </form>

Lors du clic sur le bouton d'envoi, nous devons effectuer les opérations suivantes :

<?php $id = $_SESSION['id']; // id de l'utilisateur depuis la session $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // mot de passe salé depuis la BDD $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Vérifions la correspondance entre le hash de la base et l'ancien mot de passe saisi if (password_verify($oldPassword, $hash)) { $newPasswordHash = password_hash($newPassword, PASSWORD_DEFAULT); $query = "UPDATE users SET password='$newPasswordHash' WHERE id='$id'"; mysqli_query($link, $query); } else { // l'ancien mot de passe est incorrect, affichons un message } ?>

Implémentez le changement de mot de passe décrit.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser