⊗ppPmAuPCh 429 of 447 menu

Zmena hesla v PHP

Zmenu hesla nemožno jednoducho vykonať v osobnom priestore. Faktom je, že používateľ môže nechať svoj počítač bez dozoru (napríklad v kancelárii), pričom je autorizovaný na našej stránke. V tomto prípade, ak povolíme jednoducho meniť heslo, tak zlomyseľný útočník bude môcť zmeniť heslo na iné, čo je samozrejme veľmi zlé.

Je potrebné zabezpečiť, aby zmena hesla na nové vyžadovala zadanie starého hesla.

Poďme implementovať stránku changePassword.php, na ktorej používateľ uvidí formulár s dvoma inputmi - do prvého musí zadať svoje 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 kliknutí na tlačidlo odoslania musíme urobiť nasledovné:

<?php $id = $_SESSION['id']; // id používateľa z relácie $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // soľané heslo z databázy $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Kontrolujeme zhodu hash z databázy so zadaným starým heslom 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 bolo zadané nesprávne, vypíšeme správu } ?>

Implementujte opísanú zmenu hesla.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť