Maison >développement back-end >Problème PHP >Comment écrire une fonction pour changer les mots de passe de plusieurs utilisateurs en PHP
PHP est un langage de script côté serveur largement utilisé pour développer des sites Web et des applications Web dynamiques. Dans les applications Web, il est généralement nécessaire de gérer plusieurs utilisateurs, notamment la connexion des utilisateurs, l'enregistrement, la modification des informations, etc. Une opération courante consiste à modifier les mots de passe de plusieurs utilisateurs. Cet article explique comment utiliser PHP pour écrire une fonction qui modifie les mots de passe de plusieurs utilisateurs.
1. Conception de la base de données
Avant d'écrire, nous devons d'abord concevoir la structure de la base de données. Supposons que notre système contienne une table utilisateur nommée "users", qui contient les champs suivants :
2. Créer un formulaire de changement de mot de passe
Créez un formulaire de changement de mot de passe en HTML. Le formulaire comprend les champs de saisie suivants :
Ce qui suit est un exemple de code 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. Traitez la demande de changement de mot de passe
Ensuite, nous devons écrire un script PHP pour gérer la demande de changement de mot de passe. Tout d'abord, récupérez les données soumises par le formulaire :
$old_password = $_POST['old_password']; $new_password = $_POST['new_password']; $confirm_password = $_POST['confirm_password'];
Ensuite, vérifiez la validité des données d'entrée :
// 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); }
Ensuite, parcourez tous les utilisateurs, modifiez le mot de passe et stockez le résultat dans le tableau :
$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 ); } }
Enfin, renvoyer le résultat modifié à l'utilisateur :
foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } }
4. Code complet
Ce qui suit est le code PHP complet pour modifier les mots de passe multi-utilisateurs :
<?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. Résumé
PHP est un puissant langage de script côté serveur adapté à divers développement d'applications web. Cet article explique comment utiliser PHP pour écrire une fonction qui modifie les mots de passe de plusieurs utilisateurs. Cette fonction implique la connexion à la base de données, l'authentification des utilisateurs, le parcours des données et la sortie des résultats, etc. Elle présente certains défis pour les débutants PHP, mais la maîtrise des connaissances peut constituer une base pour la prochaine étape de développement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!