一個非常有趣的 Cookie 用例是基於 Cookie 的會話。

PHP 提供了一種非常簡單的方法來創建基於 Cookie 的會話,即使用 session_start()

嘗試在 PHP 文件中添加以下代碼:

<?php
session_start();
?>

然後在瀏覽器中加載該文件。

您將看到一個名為 PHPSESSID 的新 Cookie,並且已分配了一個值。

這就是會話 ID。它將在每次新請求中被發送,並且 PHP 將使用它來識別會話。

與我們使用 Cookie 的方式類似,現在我們可以使用 $_SESSION 來存儲用戶發送的信息,但這次不是在客戶端存儲。

只有會話 ID 存儲在客戶端。

數據由 PHP 在服務器端存儲。

<?php
session_start();

if (isset($_POST['name'])) {
    $_SESSION['name'] = $_POST['name'];
}
if (isset($_POST['name'])) {
    echo '<p>Hello ' . $_POST['name'];
} else {
    if (isset($_SESSION['name'])) {
        echo '<p>Hello ' . $_SESSION['name'];
    }
}
?>

<form method="POST">
    <input type="text" name="name" />
    <input type="submit" />
</form>

這只適用於簡單的用例,對於大量數據,您將需要使用數據庫。

要清除會話數據,可以調用 session_unset()

要清除會話 Cookie,使用以下代碼:

setcookie(session_name(), '');