⊗ppPmAuPCh 429 of 447 menu

Změna hesla v PHP

Změnu hesla nelze jednoduše provést v osobním účtu. Jde o to, že uživatel může nechat svůj počítač bez dozoru (například v kanceláři), zatímco je přihlášen na našem webu. V tomto případě, pokud povolíme jednoduše měnit heslo, tak útočník-nepřítel bude moci změnit heslo na jiné, což samozřejmě velmi špatné.

Je nutné zařídit, aby změna hesla na nové vyžadovala zadání starého hesla.

Pojďme implementovat stránku changePassword.php, na kterou když uživatel přejde, uvidí formulář se dvěma inputy - do prvního bude muset zadat své staré heslo a do druhého - nové:

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

Po stisknutí tlačítka odeslání musíme provést následující:

<?php $id = $_SESSION['id']; // id uživatele ze session $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // solené heslo z DB $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Kontrolujeme shodu hashe z databáze se zadaným starým heslem 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 { // staré heslo bylo zadáno nesprávně, vypíšeme zprávu } ?>

Implementujte popsanou změnu hesla.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout