Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Membawa anda langkah demi langkah untuk memahami kaedah pelaksanaan menukar kata laluan dalam php ajax

Membawa anda langkah demi langkah untuk memahami kaedah pelaksanaan menukar kata laluan dalam php ajax

PHPz
PHPzasal
2023-04-25 18:26:53590semak imbas

Dengan perkembangan teknologi Internet yang berterusan, kami semakin menggunakan pelbagai aplikasi, dan aplikasi ini memerlukan akaun log masuk untuk melindungi privasi dan keselamatan kami. Untuk aplikasi ini, menukar kata laluan adalah salah satu operasi yang biasa kami lakukan. Dalam proses ini, kami biasanya memilih untuk menggunakan php dan ajax untuk pelaksanaan. Seterusnya, mari belajar langkah demi langkah bagaimana untuk melaksanakan perubahan kata laluan ajax PHP.

1. Reka bentuk halaman hadapan

Pertama, kita perlu mereka bentuk halaman hadapan untuk menyediakan fungsi menukar kata laluan. Di halaman hadapan ini, kita perlu memasukkan kata laluan semasa, kata laluan baharu, mengesahkan kata laluan baharu dan maklumat lain, jadi borang diperlukan. Borang perlu diserahkan ke latar belakang untuk diproses, jadi kami juga perlu menggunakan butang, seperti butang "Serah" untuk menyerahkan borang.

2. Pemprosesan latar belakang PHP

Seterusnya, kita perlu menggunakan latar belakang PHP untuk memproses borang ini. Perkara pertama yang perlu diambil perhatian ialah halaman bahagian hadapan harus menghantar permintaan pos ke bahagian belakang php untuk menyerahkan borang ke bahagian belakang. Untuk menerima data borang yang diluluskan dalam php, anda perlu menggunakan tatasusunan $_POST:

$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$confirm_password = $_POST['confirm_password'];

Seterusnya, kami perlu melakukan beberapa pemprosesan logik perniagaan. Mula-mula, anda perlu menyemak sama ada kata laluan semasa adalah betul:

if (!password_verify($old_password, $user['password'])) {
    echo '当前密码错误,请重新输入。';
    exit;
}

Fungsi password_verify() digunakan di sini untuk mengesahkan sama ada kata laluan semasa adalah betul. Jika kata laluan semasa dimasukkan dengan salah, halaman perlu menggesa pengguna untuk memasukkan semula.

Seterusnya, anda perlu menyemak sama ada kata laluan baharu yang dimasukkan dua kali adalah konsisten:

if ($new_password !== $confirm_password) {
    echo '两次输入的新密码不一致,请重新输入。';
    exit;
}

Jika kata laluan baharu yang dimasukkan dua kali tidak konsisten, pengguna perlu digesa untuk memasukkan semula.

Adalah penting untuk ambil perhatian bahawa atas sebab keselamatan kami perlu menggunakan cincang kata laluan untuk menyimpan kata laluan pengguna. Di sini, gunakan fungsi password_hash() untuk mencincang kata laluan baharu:

$password_hashed = password_hash($new_password, PASSWORD_DEFAULT);

Akhir sekali, gunakan pernyataan sql untuk melaksanakan operasi kemas kini pangkalan data:

$sql = "UPDATE users SET password = :password WHERE id = :id";
$stmt = $db->prepare($sql);
$stmt->bindParam(':password', $password_hashed, PDO::PARAM_STR);
$stmt->bindParam(':id', $user['id'], PDO::PARAM_INT);
$stmt->execute();

Selepas operasi di atas adalah selesai, halaman memerlukan Gesa pengguna untuk menukar kata laluan dengan jayanya.

3. Penyerahan asynchronous ajax

Langkah terakhir ialah menggunakan ajax untuk menyerahkan halaman hadapan secara tidak segerak. Komit tak segerak biasanya memberikan pengalaman pengguna yang lebih baik daripada komitmen segerak. Penyerahan tak segerak hanya akan dimuat semula sebahagiannya dan tidak akan menyebabkan keseluruhan halaman dimuat semula. Di sini kami menggunakan kaedah $.ajax() jquery untuk melaksanakan penyerahan tak segerak:

$.ajax({
    type: 'POST',
    url: 'update_password.php',
    data: $('#form').serialize(),
    dataType: 'json',
    success: function (data) {
        if (data.success) {
            alert('修改密码成功');
            window.location.href = 'index.php';
        } else {
            alert(data.message);
        }
    },
    error: function () {
        alert('修改密码失败,请重试!');
    }
});

Di atas ialah kaedah pelaksanaan menukar kata laluan dalam php ajax. Ia menghubungkan reka bentuk halaman hadapan, pemprosesan latar belakang PHP dan penyerahan asynchronous ajax untuk merealisasikan operasi menukar kata laluan.

Atas ialah kandungan terperinci Membawa anda langkah demi langkah untuk memahami kaedah pelaksanaan menukar kata laluan dalam php ajax. 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