⊗ppPmAuPCh 429 of 447 menu

Promena lozinke na PHP

Promenu lozinke ne možemo jednostavno omogućiti u ličnom nalogu. Stvar je u tome što korisnik može ostaviti svoj računar bez nadzora (na primer, u kancelariji), budući da je autorizovan na našem sajtu. U tom slučaju, ako dozvolimo jednostavnu promenu lozinke, onda zlonameran napadač može promeniti lozinku na neku drugu, što je, naravno, vrlo loše.

Neophodno je da promena lozinke na novu zahteva unos stare lozinke.

Hajde da implementiramo stranicu changePassword.php, na koju će korisnik, kada uđe, videti formu sa dva polja - u prvo treba da unese svoju staru lozinku, a u drugo - novu:

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

Klikom na dugme za slanje treba da uradimo sledeće:

<?php $id = $_SESSION['id']; // id korisnika iz sesije $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // soljena lozinka iz baze $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Proveravamo podudarnost heša iz baze sa unetom starom lozinkom 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 { // stara lozinka je pogrešno uneta, prikazaćemo poruku } ?>

Implementirajte opisanu promenu lozinke.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij