一個非常有趣的 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(), '');