首頁  >  文章  >  後端開發  >  php登入密碼修改程式碼

php登入密碼修改程式碼

WBOY
WBOY原創
2023-05-06 11:27:081095瀏覽

在網站的開發中,為了確保使用者的帳號安全,常常需要提供修改登入密碼的功能。本文將介紹一種使用 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);
}
?>

在這個檔案中,我們先啟用了 session,接著判斷了使用者名稱和密碼是否傳遞過來。如果是,我們連接資料庫,判斷使用者名稱和密碼是否正確。如果正確,我們將使用者名稱保存在 session 中,並跳到修改密碼的頁面 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>

在這個檔案中,我們首先判斷使用者是否已經登錄,如果沒有登入則返回登入頁面。接著判斷使用者是否提交了修改密碼的表單,如果是,我們從 session 中取得使用者名,舊密碼和新密碼,連接資料庫,進行密碼修改操作,最後提示使用者操作成功或失敗。

以上就是使用 PHP 寫的登入密碼來修改程式碼,透過這個程式碼,使用者可以在登入後修改自己的密碼,從而提升了帳號的安全性。當然,在實際開發中,還需要考慮一些安全性問題,例如對使用者密碼進行加密、資料庫的讀寫權限進行限制等。

以上是php登入密碼修改程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn