So schreiben Sie eine Funktion zum Ändern der Passwörter mehrerer Benutzer in PHP

PHPz
Freigeben: 2023-04-04 15:24:01
Original
436 Leute haben es durchsucht

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:

  • id: Benutzer-ID, automatisch inkrementierend.
  • Benutzername: Benutzername.
  • Passwort: Passwort.
  • E-Mail: E-Mail-Adresse.
  • role: Benutzerrolle, mit der Benutzerberechtigungen im System gesteuert werden.

2. Erstellen Sie ein Passwortänderungsformular

Erstellen Sie ein Passwortänderungsformular in HTML. Das Formular enthält die folgenden Eingabefelder:

  • Altes Passwort: Wird zur Überprüfung der Benutzeridentität verwendet.
  • Neues Passwort: Wird zum Festlegen eines neuen Passworts verwendet.
  • Passwort bestätigen: Wird verwendet, um das neue Passwort erneut zu bestätigen.

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>
Nach dem Login kopieren

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'];
Nach dem Login kopieren

Ü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("旧密码不正确。");
}
Nach dem Login kopieren

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
        );
    }
}
Nach dem Login kopieren

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>";
    }
}
Nach dem Login kopieren

4. Vollständiger Code

Das Folgende ist der vollständige PHP-Code zum Ändern von Mehrbenutzerkennwörtern:

<?php
// 数据库连接
$conn = mysqli_connect(&#39;localhost&#39;, &#39;username&#39;, &#39;password&#39;, &#39;database&#39;);

// 获取当前用户信息
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[&#39;password&#39;])) {
        die("旧密码不正确。");
    }

    $results = array();
    $users = getAllUsers();
    foreach ($users as $user) {
        // 修改密码
        $new_hashed_password = password_hash($new_password, PASSWORD_DEFAULT);
        $sql = "UPDATE users SET password = &#39;$new_hashed_password&#39; WHERE id = " . $user[&#39;id&#39;];
        $result = mysqli_query($conn, $sql);
        if (!$result) {
            // 修改失败
            $results[] = array(
                &#39;user_id&#39; => $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']);
}
?>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage