Cara menggunakan PHP dan borang untuk menukar kata laluan

PHPz
Lepaskan: 2023-04-05 10:56:02
asal
660 orang telah melayarinya

Dengan perkembangan pesat teknologi rangkaian, orang ramai semakin bergantung kepada pelbagai laman web dan aplikasi. Pada tapak web dan aplikasi yang berbeza, kami perlu menetapkan kata laluan yang berbeza untuk melindungi keselamatan akaun kami. Walau bagaimanapun, jika anda perlu menukar kata laluan anda dengan kerap, ia boleh menjadi masalah. Nasib baik, banyak laman web dan aplikasi menyediakan fungsi menukar kata laluan, dan artikel ini akan mengajar anda cara menggunakan PHP dan borang untuk melaksanakan fungsi menukar kata laluan.

  1. Sahkan identiti pengguna

Sebelum melaksanakan fungsi pengubahsuaian kata laluan, anda perlu terlebih dahulu mengesahkan identiti pengguna untuk memastikan hanya pengguna yang dibenarkan boleh mengubah suai kata laluan mereka. Cara mudah ialah menggunakan ciri log masuk. Apabila pengguna log masuk, mereka diberi kuasa untuk menggunakan ciri yang dilindungi tapak web, termasuk perubahan kata laluan. Oleh itu, sebelum membuat borang pertukaran kata laluan, anda harus memastikan bahawa pengguna telah log masuk dan diberi kuasa.

  1. Buat borang

Dalam contoh ini, kami akan menggunakan borang untuk membenarkan pengguna memasukkan kata laluan baharu. Kami akan membuat borang dengan medan berikut:

  • Kata laluan semasa
  • Kata laluan baharu
  • Sahkan kata laluan baharu

Pengguna mesti betul Anda mesti memasukkan kata laluan semasa anda untuk menukar kata laluan anda. Medan Kata Laluan Baharu dan Sahkan Kata Laluan Baharu membenarkan pengguna menetapkan kata laluan baharu dan memastikan kedua-duanya betul-betul sama.

Berikut ialah contoh borang HTML asas yang boleh anda gunakan sebagai titik permulaan:

<form method="post" action="update_password.php">

  <label for="current_password">Current Password:</label>
  <input type="password" id="current_password" name="current_password">

  <label for="new_password">New Password:</label>
  <input type="password" id="new_password" name="new_password">

  <label for="confirm_password">Confirm New Password:</label>
  <input type="password" id="confirm_password" name="confirm_password">

  <button type="submit">Update Password</button>

</form>
Salin selepas log masuk
  1. Mengendalikan penyerahan borang

Setelah pengguna menyerahkan Borang pertukaran kata laluan, anda perlu menggunakan PHP untuk memproses data yang diserahkan. Mula-mula, anda perlu mengumpul nilai medan borang dan memastikan bahawa pengguna telah memasukkan kata laluan semasa dengan betul:

$current_password = isset($_POST['current_password']) ? $_POST['current_password'] : '';
$new_password = isset($_POST['new_password']) ? $_POST['new_password'] : '';
$confirm_password = isset($_POST['confirm_password']) ? $_POST['confirm_password'] : '';

if (!$current_password) {
  echo 'Current password is required.';
  exit;
}

// Continue processing form...
Salin selepas log masuk

Seterusnya, anda perlu menentukan sama ada kata laluan baharu dan kata laluan pengesahan dimasukkan oleh pengguna adalah betul-betul sama:

if ($new_password !== $confirm_password) {
  echo 'New passwords do not match.';
  exit;
}

// Continue processing form...
Salin selepas log masuk

Akhir sekali, anda perlu menggunakan logik yang betul untuk menyemak sama ada kata laluan semasa adalah betul dan jika ya, kemas kini kata laluan pengguna dengan kata laluan baharu:

// Check current password against stored password
if (!password_verify($current_password, $stored_password)) {
  echo 'Incorrect current password.';
  exit;
}

// Update password
$new_password_hash = password_hash($new_password, PASSWORD_DEFAULT);
$update_password_query = "UPDATE users SET password = '$new_password_hash' WHERE id = $user_id";
// Execute query...
Salin selepas log masuk

Dalam kod di atas, kami menggunakan fungsi password_verify( ) untuk membandingkan sama ada kata laluan semasa yang dihantar oleh pengguna sepadan dengan kata laluan yang disimpan dalam pangkalan data. Jika kata laluan sepadan, kata laluan baharu dicincang menggunakan fungsi password_hash(), yang mencincang kata laluan menggunakan algoritma pencincangan PHP lalai semasa, dan kemudian menyimpan kata laluan cincang baharu ke dalam pangkalan data.

  1. Lengkapkan penukaran kata laluan

Jika borang berjaya dihantar dan kata laluan semasa berjaya disahkan, anda boleh mengemas kini kata laluan dalam pangkalan data dengan kata laluan baharu. Setelah ini selesai, tunjukkan kepada pengguna mesej kejayaan atau ubah hala mereka ke halaman lain:

// Update password
$new_password_hash = password_hash($new_password, PASSWORD_DEFAULT);
$update_password_query = "UPDATE users SET password = '$new_password_hash' WHERE id = $user_id";
// Execute query...

// Password updated successfully
echo 'Password updated successfully.';
Salin selepas log masuk

Ringkasan

Dalam artikel ini, kami menunjukkan kepada anda cara melakukannya melalui PHP dan borang Implement fungsi pengubahsuaian kata laluan. Kami menunjukkan cara membuat borang pertukaran kata laluan menggunakan kod HTML dan PHP, dengan logik yang betul untuk menyemak dan mengemas kini kata laluan pengguna. Apabila anda menulis kefungsian sedemikian, pastikan anda mengikuti amalan terbaik seperti menggunakan algoritma pencincangan kata laluan yang sesuai, mengelak daripada menyimpan kata laluan dalam teks yang jelas, membenarkan hanya pengguna yang dibenarkan mengakses halaman pengubahsuaian kata laluan, dsb.

Atas ialah kandungan terperinci Cara menggunakan PHP dan borang untuk menukar kata laluan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!