⊗ppPmAuPCh 429 of 447 menu

Menukar Kata Laluan dalam PHP

Menukar kata laluan tidak boleh dilakukan secara terus dalam akaun peribadi. Masalahnya ialah, pengguna mungkin meninggalkan komputer mereka tanpa dijaga (contohnya, di pejabat) semasa masih log masuk ke laman web kami. Dalam situasi ini, jika dibenarkan menukar kata laluan secara terus, seorang penyerang atau individu yang berniat jahat boleh menukar kata laluan kepada yang lain, yang sudah tentu sangat tidak baik.

Adalah perlu untuk memastikan bahawa menukar kata laluan kepada yang baru memerlukan pengisian kata laluan lama.

Mari kita laksanakan halaman changePassword.php, di mana pengguna akan melihat borang dengan dua input medan - yang pertama untuk memasukkan kata laluan lama, dan yang kedua untuk kata laluan baru:

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

Apabila butang hantar ditekan, kita perlu melakukan perkara berikut:

<?php $id = $_SESSION['id']; // id pengguna dari sesi $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // kata laluan yang di-hash dari pangkalan data $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Semak kesesuaian hash dari pangkalan data dengan kata laluan lama yang dimasukkan 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 { // kata laluan lama dimasukkan dengan salah, paparkan mesej } ?>

Laksanakan penukaran kata laluan seperti yang diterangkan.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak