>  기사  >  백엔드 개발  >  PHP 로그인 비밀번호 수정 코드

PHP 로그인 비밀번호 수정 코드

WBOY
WBOY원래의
2023-05-06 11:27:081041검색

웹사이트 개발 시 사용자 계정의 보안을 보장하기 위해 로그인 비밀번호 변경 기능을 제공해야 하는 경우가 많습니다. 이 기사에서는 개발자가 이 기능을 구현하는 데 도움을 주기 위해 PHP로 작성된 로그인 비밀번호 수정 코드를 소개합니다.

먼저 사용자가 로그인하기 위해 사용자 이름과 비밀번호를 입력하는 로그인 페이지가 필요합니다. 사용자가 성공적으로 로그인하면 비밀번호 변경 버튼이 표시됩니다. 버튼을 클릭하면 비밀번호를 변경할 수 있는 페이지로 이동할 수 있습니다.

다음은 로그인 페이지의 코드입니다.

<!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>

이 페이지에서는 사용자 로그인을 확인하기 위해 양식을 통해 login.php라는 PHP 파일에 사용자 이름과 비밀번호를 전달합니다.

다음은 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);
}
?>

이 파일에서는 먼저 세션을 활성화한 다음 사용자 이름과 비밀번호가 전달되는지 확인합니다. 그렇다면 데이터베이스에 연결하여 사용자 이름과 비밀번호가 올바른지 확인합니다. 정확하다면 세션에 사용자 이름을 저장하고 비밀번호 변경 페이지changepassword.php로 이동합니다. 그렇지 않으면 사용자 이름이나 비밀번호가 올바르지 않다는 메시지가 표시됩니다.

다음으로, 로그인 비밀번호 변경 기능을 구현하기 위해changepassword.php 파일을 작성합니다. 코드는 다음과 같습니다.

<?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>

이 파일에서는 먼저 사용자가 로그인되어 있는지 확인하고, 로그인되어 있지 않으면 로그인 페이지로 돌아갑니다. 그런 다음 사용자가 비밀번호 변경 양식을 제출했는지 확인합니다. 그렇다면 세션에서 사용자 이름, 이전 비밀번호 및 새 비밀번호를 가져와 데이터베이스에 연결하고 비밀번호 변경 작업을 수행한 다음 마지막으로 사용자에게 여부를 묻습니다. 작업이 성공했거나 실패했습니다.

위는 PHP로 작성된 로그인 비밀번호 수정 코드입니다. 이 코드를 통해 사용자는 로그인 후 비밀번호를 수정할 수 있어 계정 보안이 향상됩니다. 물론 실제 개발에서는 사용자 비밀번호를 암호화하고 데이터베이스 읽기 및 쓰기 권한을 제한하는 등 일부 보안 문제를 고려해야 합니다.

위 내용은 PHP 로그인 비밀번호 수정 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.