Maison  >  Article  >  développement back-end  >  Code de modification du mot de passe de connexion PHP

Code de modification du mot de passe de connexion PHP

WBOY
WBOYoriginal
2023-05-06 11:27:081041parcourir

Dans le développement de sites internet, afin d'assurer la sécurité des comptes utilisateurs, il est souvent nécessaire de prévoir la fonction de modification des mots de passe de connexion. Cet article présentera un code de modification du mot de passe de connexion écrit en PHP pour aider les développeurs à implémenter cette fonction.

Tout d'abord, nous avons besoin d'une page de connexion sur laquelle les utilisateurs saisissent leur nom d'utilisateur et leur mot de passe pour se connecter. Lorsque l'utilisateur se connecte avec succès, un bouton permettant de modifier le mot de passe s'affichera. L'utilisateur peut cliquer sur le bouton pour accéder à la page permettant de modifier le mot de passe.

Voici le code de la page de connexion :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>登录页面</title>
    </head>
    <body>
        <h1>登录页面</h1>
        <form action="login.php" method="post">
            <label for="username">用户名:</label>
            <input type="text" id="username" name="username" required>
            <br>
            <label for="password">密码:</label>
            <input type="password" id="password" name="password" required>
            <br>
            <input type="submit" value="登录">
        </form>
    </body>
</html>

Dans cette page, nous transmettons le nom d'utilisateur et le mot de passe via le formulaire dans un fichier PHP nommé login.php. de connexion de l'utilisateur.

Voici le code du fichier login.php :

<?php
session_start();

if (isset($_POST['username']) && isset($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 连接数据库,判断用户名和密码是否正确
    $conn = mysqli_connect('localhost', 'root', 'password', 'my_db');
    if (!$conn) {
        die('连接数据库失败!');
    }

    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = mysqli_query($conn, $sql);

    if (mysqli_num_rows($result) == 1) {
        $_SESSION['username'] = $username;
        header('Location: changepassword.php');
    } else {
        echo '用户名或密码错误!';
    }

    mysqli_close($conn);
}
?>

Dans ce fichier, nous activons d'abord la session, puis déterminons si le nom d'utilisateur et le mot de passe sont transmis. Si tel est le cas, nous nous connectons à la base de données et déterminons si le nom d'utilisateur et le mot de passe sont corrects. Si c'est correct, nous enregistrons le nom d'utilisateur dans la session et passons à la page de changement de mot de passe changepassword.php. Sinon, nous informons l'utilisateur que le nom d'utilisateur ou le mot de passe est incorrect.

Ensuite, nous écrivons le fichier changepassword.php pour implémenter la fonction de modification du mot de passe de connexion. Voici le code :

<?php
session_start();

if (!isset($_SESSION['username'])) {
    header('Location: login.php');
    exit();
}

if (isset($_POST['oldPassword']) && isset($_POST['newPassword'])) {
    $username = $_SESSION['username'];
    $oldPassword = $_POST['oldPassword'];
    $newPassword = $_POST['newPassword'];

    // 连接数据库,修改密码
    $conn = mysqli_connect('localhost', 'root', 'password', 'my_db');
    if (!$conn) {
        die('连接数据库失败!');
    }

    $sql = "UPDATE users SET password='$newPassword' WHERE username='$username' AND password='$oldPassword'";
    $result = mysqli_query($conn, $sql);

    if ($result) {
        echo '密码修改成功!';
    } else {
        echo '密码修改失败!';
    }

    mysqli_close($conn);
}
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>修改密码页面</title>
    </head>
    <body>
        <h1>修改密码页面</h1>
        <form action="changepassword.php" method="post">
            <label for="oldPassword">旧密码:</label>
            <input type="password" id="oldPassword" name="oldPassword" required>
            <br>
            <label for="newPassword">新密码:</label>
            <input type="password" id="newPassword" name="newPassword" required>
            <br>
            <input type="submit" value="修改密码">
        </form>
    </body>
</html>

Dans ce fichier, nous déterminons d'abord si l'utilisateur est connecté, et s'il n'est pas connecté, revenons à la page de connexion. Ensuite, nous déterminons si l'utilisateur a soumis un formulaire pour modifier le mot de passe. Si tel est le cas, nous récupérons le nom d'utilisateur, l'ancien mot de passe et le nouveau mot de passe de la session, nous nous connectons à la base de données, effectuons l'opération de changement de mot de passe et demandons enfin à l'utilisateur s'il a soumis un formulaire pour modifier le mot de passe. l'opération est réussie ou échouée.

Ce qui précède est le code de modification du mot de passe de connexion écrit en PHP Grâce à ce code, les utilisateurs peuvent modifier leur mot de passe après s'être connectés, améliorant ainsi la sécurité du compte. Bien entendu, dans le développement réel, certains problèmes de sécurité doivent être pris en compte, tels que le cryptage des mots de passe des utilisateurs et la restriction des autorisations de lecture et d'écriture sur la base de données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn