PHP ialah bahasa skrip sebelah pelayan yang digunakan secara meluas yang digunakan untuk membangunkan tapak web dinamik dan aplikasi web. Dalam aplikasi web, biasanya diperlukan untuk mengurus berbilang pengguna, termasuk log masuk pengguna, pendaftaran, penyuntingan maklumat, dsb. Satu operasi biasa ialah menukar kata laluan berbilang pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis fungsi yang menukar kata laluan berbilang pengguna.
1. Reka bentuk pangkalan data
Sebelum menulis, kita perlu mereka bentuk struktur pangkalan data terlebih dahulu. Andaikan sistem kami mengandungi jadual pengguna bernama "pengguna", yang mengandungi medan berikut:
2. Cipta borang tukar kata laluan
Buat borang tukar kata laluan dalam HTML. Borang tersebut termasuk kotak input berikut:
Berikut ialah contoh kod HTML:
<form action="update_password.php" method="post"> <label for="old_password">旧密码:</label> <input type="password" name="old_password"> <br> <label for="new_password">新密码:</label> <input type="password" name="new_password"> <br> <label for="confirm_password">确认密码:</label> <input type="password" name="confirm_password"> <br> <button type="submit">修改密码</button> </form>
3 Proses permintaan penukaran kata laluan
Seterusnya, kita perlu menulis skrip PHP untuk dikendalikan. permintaan tukar kata laluan. Mula-mula, dapatkan data yang diserahkan melalui borang:
$old_password = $_POST['old_password']; $new_password = $_POST['new_password']; $confirm_password = $_POST['confirm_password'];
Kemudian, sahkan kesahihan data input:
// 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); }
Seterusnya, lintasi semua pengguna, tukar kata laluan dan simpan keputusan dalam Dalam tatasusunan:
$results = array(); $users = getAllUsers(); foreach ($users as $user) { // 修改密码 $new_hashed_password = password_hash($new_password, PASSWORD_DEFAULT); $sql = "UPDATE users SET password = '$new_hashed_password' WHERE id = " . $user['id']; $result = mysqli_query($conn, $sql); if (!$result) { // 修改失败 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => false ); } else { // 修改成功 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => true ); } }
Akhir sekali, kembalikan hasil pengubahsuaian kepada pengguna:
foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } }
4. Kod lengkap
Berikut ialah PHP yang lengkap kod untuk mengubah suai kata laluan berbilang pengguna :
<?php // 数据库连接 $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // 获取当前用户信息 function getUserById($user_id) { global $conn; $sql = "SELECT * FROM users WHERE id = $user_id"; $result = mysqli_query($conn, $sql); $user = mysqli_fetch_assoc($result); return $user; } // 获取所有用户 function getAllUsers() { global $conn; $sql = "SELECT * FROM users"; $result = mysqli_query($conn, $sql); $users = mysqli_fetch_all($result, MYSQLI_ASSOC); return $users; } // 修改密码 function updatePassword($old_password, $new_password, $confirm_password) { global $conn; // 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); } $results = array(); $users = getAllUsers(); foreach ($users as $user) { // 修改密码 $new_hashed_password = password_hash($new_password, PASSWORD_DEFAULT); $sql = "UPDATE users SET password = '$new_hashed_password' WHERE id = " . $user['id']; $result = mysqli_query($conn, $sql); if (!$result) { // 修改失败 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => false ); } else { // 修改成功 $results[] = array( 'user_id' => $user['id'], 'username' => $user['username'], 'success' => true ); } } foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } } } // 处理表单提交 if (isset($_POST['old_password']) && isset($_POST['new_password']) && isset($_POST['confirm_password'])) { updatePassword($_POST['old_password'], $_POST['new_password'], $_POST['confirm_password']); } ?>
5 Ringkasan
PHP ialah bahasa skrip bahagian pelayan yang berkuasa yang sesuai untuk pembangunan pelbagai aplikasi web. Artikel ini memperkenalkan cara menggunakan PHP untuk menulis fungsi yang menukar kata laluan berbilang pengguna. Fungsi ini melibatkan sambungan pangkalan data, pengesahan pengguna, traversal data dan output hasil, dsb. Ia mempunyai cabaran tertentu untuk pemula PHP, tetapi menguasai pengetahuan boleh menyediakan asas untuk langkah pembangunan seterusnya.
Atas ialah kandungan terperinci Bagaimana untuk menulis fungsi untuk menukar kata laluan berbilang pengguna dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!