Halaman Tukar Kata Laluan PHP
Kita semua perlu menggunakan kata laluan semasa menjalankan banyak operasi perniagaan. Isu kerahsiaan kata laluan sentiasa menjadi topik yang sangat penting. Apabila bercakap tentang keselamatan data, kata laluan harus disulitkan menggunakan tahap perlindungan tertinggi. Tetapi walaupun kata laluan anda sempurna, jika anda terlupa, data anda akan menjadi tidak boleh diakses. Dalam kes ini, kami memerlukan alat tukar kata laluan untuk membantu kami menetapkan semula kata laluan baharu untuk memastikan data boleh digunakan tepat pada masanya.
Dalam PHP, mencipta halaman pertukaran kata laluan agak mudah. Berikut adalah langkah-langkah utama dan proses pelaksanaan.
Langkah 1 - Wujudkan sambungan pangkalan data
Langkah pertama ialah mewujudkan sambungan pangkalan data. Di sini kita boleh menggunakan pangkalan data MySQL. Dalam fungsi MySQL PHP, kita boleh menggunakan fungsi mysqli_connect() untuk menyambung ke pangkalan data MySQL.
Kod contoh:
$dbhost = 'localhost'; //Nama hos pangkalan data
$dbname = 'mydatabase'; //Nama pangkalan data
$dbuser = 'root'; ; //Nama pengguna pangkalan data
$dbpass = ''; //Kata laluan pangkalan data
$conn = mysqli_connect("$dbhost", "$dbuser", "$dbpass") atau die ("Sambung Ralat ");
mysqli_select_db($conn,"$dbname") atau mati ("Tidak dapat menyambung ke pangkalan data");
Jika sambungan gagal, "Ralat sambungan" atau " Tidak dapat menyambung ke pangkalan data" dan mesej gesaan lain.
Langkah 2 - Buat borang tukar kata laluan
Kita perlu buat borang tukar kata laluan dalam HTML.
Kod sampel:
Dalam Dalam borang ini, kami mentakrifkan tiga kotak input untuk mendapatkan kata laluan lama, kata laluan baharu dan mengesahkan kata laluan. Apa yang perlu diperhatikan di sini ialah kita perlu menetapkan atribut jenis dalam kotak input kata laluan kepada "kata laluan" supaya kata laluan itu boleh disembunyikan.
Langkah 3 - Memproses data borang
Memproses data borang ialah langkah yang sangat penting. Dalam langkah ini, kami mesti mengesahkan sama ada data yang dimasukkan oleh pengguna memenuhi spesifikasi Kami juga perlu menentukan sama ada kata laluan lama yang dimasukkan oleh pengguna adalah betul, dan mengesahkan sama ada kata laluan baharu yang dimasukkan dua kali adalah sama.
Pertama, kami perlu mengesahkan bahawa data telah lengkap. Dalam contoh ini, ketiga-tiga kotak input kami diperlukan. Oleh itu, kita perlu menggunakan atribut HTML5 diperlukan untuk mengesahkan bahawa pengguna telah memasukkan medan yang diperlukan.
Kod sampel:
Atribut yang diperlukan ini memastikan bahawa kandungan input dalam borang tidak boleh kosong .
Seterusnya, kita perlu mendapatkan kata laluan lama yang dimasukkan oleh pengguna dan menyulitkannya. Sebab kami ingin menyulitkan kata laluan adalah untuk menyimpannya ke pangkalan data. Dalam kes ini, kita boleh menggunakan fungsi md5() dalam PHP.
Kod contoh:
$oldpassword = md5($_POST['oldpassword']);
Seterusnya, kami perlu mengesahkan sama ada kata laluan lama yang dimasukkan oleh pengguna adalah betul, yang memerlukan Tanya pangkalan data.
Kod contoh:
$sql = "SELECT * FROM userdata WHERE password = '$oldpassword'";
$result = mysqli_query($conn, $sql) atau die(mysqli_error ($conn));
if(mysqli_num_rows($result) > 0) {
//Pengesahan kata laluan lama berjaya
} lain {
//Pengesahan kata laluan lama gagal
}
Di sini kami menanyakan kata laluan yang disimpan daripada jadual data pengguna. Jika bilangan baris yang dikembalikan oleh hasil pertanyaan adalah lebih daripada 0, ini bermakna kata laluan lama yang dimasukkan adalah betul, jika tidak, pengesahan kata laluan lama gagal.
Selepas berjaya mengesahkan kata laluan lama, kami perlu mengesahkan sekali lagi sama ada kata laluan baharu memenuhi keperluan dan mengesahkan sama ada dua input kata laluan baharu adalah konsisten. Selepas pengesahan selesai, kami perlu menyulitkan kata laluan baharu dan menulisnya ke pangkalan data.
Kod contoh:
$newpassword = md5($_POST['newpassword']);
$sql = "KEMASKINI data pengguna SET kata laluan='$newpassword' WHERE id ='$id'";
$result = mysqli_query($conn, $sql) atau die(mysqli_error($conn));
Dalam contoh ini, kami menggunakan pernyataan UPDATE SQL kepada The kata laluan baharu ditulis pada jadual data pengguna.
Langkah 4 - Paparkan hasil pengemaskinian kata laluan
Untuk langkah terakhir, kita perlu paparkan hasil pengemaskinian kata laluan.
Kami boleh memanggil fungsi mysqli_affected_rows() untuk menentukan sama ada kemas kini berjaya. Jika kemas kini berjaya, fungsi ini mengembalikan bilangan baris yang dikemas kini (biasanya 1);
Kod contoh:
if(mysqli_affected_rows($conn) > 0) {
echo "Kata laluan berjaya ditukar";
} lain {
echo "Kata laluan ditukar Gagal, sila cuba lagi";
}
Akhir sekali, dengan menggabungkan semua kod bersama-sama, kami boleh mencipta halaman perubahan kata laluan PHP yang lengkap.
Kod penuh:
$dbhost = 'localhost'; //Nama hos pangkalan data
$dbname = 'mydatabase'; >$dbuser = 'root'; //Nama pengguna pangkalan data
$dbpass = ''; //Kata laluan pangkalan data
$oldpassword = md5($_POST['oldpassword']);
$newpassword = md5($_POST['newpassword']);
$confirmpassword = md5( $ _POST['confirmpassword']);
$id = $_POST['id'];
$ result = mysqli_query($conn, $sql) atau die(mysqli_error($conn));
if($newpassword == $confirmpassword) { $sql = "UPDATE userdata SET password='$newpassword' WHERE id='$id'"; $result = mysqli_query($conn, $sql) or die(mysqli_error($conn)); if(mysqli_affected_rows($conn) > 0) { echo "密码修改成功"; } else { echo "密码修改失败,请重试"; } } else { echo "两次输入的新密码不一致,请重新输入"; }
echo "旧密码验证失败";
}
?>