當前位置: 首頁> 最新文章列表> 如何使用PHP實現表單處理和“記住我”功能:基於Cookie的登錄記憶功能

如何使用PHP實現表單處理和“記住我”功能:基於Cookie的登錄記憶功能

M66 2025-06-13

PHP表單處理:利用Cookie實現記住我功能

在網頁開發中,我們經常會遇到用戶登錄的情況。為了提升用戶體驗,我們可以使用Cookie技術實現“記住我”功能,讓用戶下次再訪問網頁時無需重新登錄。本文將介紹如何使用PHP處理表單,並利用Cookie實現這一功能。

HTML表單設計

首先,我們需要創建一個HTML表單,讓用戶輸入用戶名和密碼,並提供一個複選框供用戶選擇是否記住登錄狀態。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登入</title>
</head>
<body>
    <form action="login.php" method="POST">
        <label for="username">使用者名稱:</label>
        <input type="text" id="username" name="username"><br><br>
        
        <label for="password">密碼:</label>
        <input type="password" id="password" name="password"><br><br>
        
        <label for="remember">記住我:</label>
        <input type="checkbox" id="remember" name="remember"><br><br>
        
        <input type="submit" value="登入">
    </form>
</body>
</html>

PHP表單處理

創建一個名為login.php的PHP文件,用於處理登錄表單的數據。

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // 獲取表單提交的用戶名和密碼
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 驗證用戶名和密碼是否正確
    if ($username == 'admin' && $password == '123456') {
        // 如果用戶選擇記住登錄狀態,則設置Cookie保持用戶名和密碼
        if (isset($_POST['remember'])) {
            setcookie('username', $username, time()+3600*24*7); // 保持7天
            setcookie('password', $password, time()+3600*24*7);
        }

        // 登錄成功後,跳轉到其他頁面
        header("Location: welcome.php");
    } else {
        echo '用戶名或密碼錯誤!';
    }
}
?>

歡迎頁面

創建一個名為welcome.php的PHP文件,用於展示用戶登錄成功後的歡迎頁面。在該頁面中,我們可以根據Cookie中的用戶名來歡迎用戶。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    
</head>

    <?php
    if (isset($_COOKIE['username'])) {
        $username = $_COOKIE['username'];
        echo '<h1>歡迎回來,&#39; . $username . &#39;!</h1> &#39;;
    } else {
        echo &#39;<h1>請先登錄!</h1> &#39;;
    }
    ?>

</html>

在上述代碼中,使用isset($_COOKIE['username'])來判斷Cookie中是否保存了用戶名。如果存在,則通過$_COOKIE['username']獲取用戶名,並在頁面中輸出歡迎信息。否則,提示用戶先登錄。

通過上述步驟,我們就可以實現一個簡單的PHP登錄表單,並利用Cookie實現“記住我”功能。當用戶勾選了“記住我”選項並登錄成功後,下次訪問網頁時將自動登錄。