PHP ist eine weit verbreitete serverseitige Skriptsprache, die zur Entwicklung dynamischer Websites und Webanwendungen verwendet wird. In Webanwendungen ist es normalerweise erforderlich, mehrere Benutzer zu verwalten, einschließlich Benutzeranmeldung, Registrierung, Informationsbearbeitung usw. Ein häufiger Vorgang besteht darin, die Passwörter mehrerer Benutzer zu ändern. In diesem Artikel wird erläutert, wie Sie mit PHP eine Funktion schreiben, die die Passwörter mehrerer Benutzer ändert.
1. Datenbankdesign
Bevor wir schreiben, müssen wir zuerst die Datenbankstruktur entwerfen. Angenommen, unser System enthält eine Benutzertabelle mit dem Namen „users“, die die folgenden Felder enthält:
2. Erstellen Sie ein Passwortänderungsformular
Erstellen Sie ein Passwortänderungsformular in HTML. Das Formular enthält die folgenden Eingabefelder:
Das Folgende ist ein Beispiel-HTML-Code:
<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. Verarbeiten Sie die Anfrage zur Passwortänderung
Als nächstes müssen wir ein PHP-Skript schreiben, um die Anfrage zur Passwortänderung zu bearbeiten. Rufen Sie zunächst die vom Formular übermittelten Daten ab:
$old_password = $_POST['old_password']; $new_password = $_POST['new_password']; $confirm_password = $_POST['confirm_password'];
Überprüfen Sie dann die Gültigkeit der Eingabedaten:
// 判断新密码和确认密码是否一致 if ($new_password != $confirm_password) { die("新密码和确认密码不一致。"); } // 验证旧密码是否正确 // 假设当前用户ID为1 $user = getUserById(1); if (!password_verify($old_password, $user['password'])) { die("旧密码不正确。"); }
Als nächstes durchlaufen Sie alle Benutzer, ändern das Passwort und speichern das Ergebnis im Array:
$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 ); } }
Abschließend Geben Sie das geänderte Ergebnis an den Benutzer zurück:
foreach ($results as $result) { if ($result['success']) { echo "用户 " . $result['username'] . " 的密码已成功修改。<br>"; } else { echo "用户 " . $result['username'] . " 的密码修改失败。<br>"; } }
4. Vollständiger Code
Das Folgende ist der vollständige PHP-Code zum Ändern von Mehrbenutzerkennwörtern:
<?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. Zusammenfassung
PHP ist eine leistungsstarke serverseitige Skriptsprache, die für verschiedene Zwecke geeignet ist Entwicklung von Webanwendungen. In diesem Artikel wird erläutert, wie Sie mit PHP eine Funktion schreiben, die die Passwörter mehrerer Benutzer ändert. Diese Funktion umfasst Datenbankverbindung, Benutzerauthentifizierung, Datendurchquerung und Ergebnisausgabe usw. Sie stellt PHP-Anfänger vor gewisse Herausforderungen, aber die Beherrschung der Kenntnisse kann eine Grundlage für den nächsten Entwicklungsschritt bilden.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie eine Funktion zum Ändern der Passwörter mehrerer Benutzer in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!