Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melaksanakan fungsi menukar kata laluan log masuk dalam php? (contoh kod)

Bagaimana untuk melaksanakan fungsi menukar kata laluan log masuk dalam php? (contoh kod)

PHPz
PHPzasal
2023-04-03 14:40:311574semak imbas

Dalam pembangunan tapak web, sistem akaun pengguna adalah bahagian penting, dan keselamatan adalah salah satu terasnya. Bagi memastikan keselamatan akaun pengguna, fungsi menukar kata laluan log masuk amat perlu disediakan. Melaksanakan fungsi ini memerlukan menulis beberapa kod. Mari kita lihat cara menulis kod PHP untuk mengubah suai kata laluan log masuk.

Pertama, kita perlu mencipta borang pertukaran kata laluan untuk menyediakan pengguna antara muka yang boleh dikendalikan. Di sini, kami menggunakan kod HTML ringkas:

<form action="modifypwd.php" method="post">
    旧密码:<input type="password" name="oldpwd"><br>
    新密码:<input type="password" name="newpwd"><br>
    确认新密码:<input type="password" name="newpwd2"><br>
    <input type="submit" name="submit" value="提交">
</form>

Kaedah POST digunakan dalam borang dan diserahkan kepada fail modifypwd.php untuk diproses. Borang termasuk kotak input untuk memasukkan kata laluan lama, kata laluan baru dan pengesahan kata laluan Jenis semua kotak input adalah jenis kata laluan, dan kandungan yang dimasukkan oleh pengguna tidak akan dipaparkan.

Seterusnya, kami mula menulis kod PHP untuk memproses data borang yang diserahkan oleh pengguna. Dalam fail modifypwd.php, kita boleh menggunakan kod berikut untuk mendapatkan data borang:

$oldpwd = $_POST['oldpwd'];
$newpwd = $_POST['newpwd'];
$newpwd2 = $_POST['newpwd2'];

Kod di atas mendapatkan kata laluan lama, kata laluan baharu dan kata laluan pengesahan yang dimasukkan oleh pengguna dalam borang melalui $ _POST pembolehubah. Pada masa ini, kami perlu melakukan beberapa semakan kesahihan data untuk memastikan ketepatan dan keselamatan data input pengguna. Contohnya, tentukan sama ada kata laluan baharu yang dimasukkan oleh pengguna adalah konsisten dengan kata laluan yang disahkan:

if ($newpwd !== $newpwd2) {
    echo '两次输入的新密码不一致';
    exit;
}

Seterusnya, kita perlu mendapatkan kata laluan lama pengguna daripada pangkalan data dan mengesahkan sama ada kata laluan lama itu betul. Diandaikan di sini bahawa kami telah menyimpan maklumat akaun dan kata laluan pengguna dalam jadual pengguna, dan kata laluan disimpan menggunakan penyulitan MD5. Kod berikut boleh digunakan untuk menilai:

$oldpwd_md5 = md5($oldpwd);
$sql = "SELECT pwd FROM user WHERE username='xxx' and pwd='$oldpwd_md5'";
$result = mysqli_query($conn, $sql);
if (!$result || mysqli_num_rows($result) !== 1) {
    echo '旧密码输入错误';
    exit;
}

Antaranya, kami menggunakan fungsi md5() untuk menyulitkan kata laluan lama yang dimasukkan oleh pengguna, kemudian mendapatkan maklumat kata laluan pengguna daripada pangkalan data, dan menilai kata laluan yang dimasukkan oleh pengguna Adakah ia konsisten? Di sini xxx mewakili nama pengguna.

Akhir sekali, jika tiada masalah dengan data yang dimasukkan oleh pengguna, kami perlu menyulitkan dan menyimpan kata laluan baharu dalam pangkalan data:

$newpwd_md5 = md5($newpwd);
$sql = "UPDATE user SET pwd='$newpwd_md5' WHERE username='xxx'";
if (!mysqli_query($conn, $sql)) {
    echo '密码修改失败';
    exit;
}
echo '密码修改成功';

Pernyataan kemas kini digunakan untuk menyulitkan kata laluan baharu pengguna dan kemas kini ke pangkalan data. Pada ketika ini, proses menukar kata laluan telah selesai.

Ringkasnya, di atas adalah kod PHP untuk menukar kata laluan log masuk. Apabila menulis fungsi sedemikian, anda perlu memberi perhatian kepada keselamatan data Kami boleh memastikan keselamatan data pengguna melalui penyulitan, pengesahan data dan cara lain. Pada masa yang sama, untuk operasi yang mengubah suai pangkalan data, pemprosesan transaksi diperlukan untuk memastikan integriti dan konsistensi operasi.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi menukar kata laluan log masuk dalam php? (contoh kod). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn