PHP - Cookies

Cookie 的結構

Cookies 是在用戶瀏覽時,網頁瀏覽器存儲在用戶電腦上的小數據片段。它們用於記錄用戶的信息,如他們的偏好或登錄狀態,在不同的會話之間。在 PHP 中,可以使用內置函數來設置和訪問 cookies。

PHP - Cookies

Cookie 是什麼?

Cookie 是一個網站放在你電腦硬盤上的文本文件。每次你訪問這個網站,瀏覽器都會將 cookie 從電腦發送回服務器,以通知網站你的先前活動。這樣網站就可以根據你與它們的過去互動來定制你的體驗。

Cookie 的類型

有兩種類型的 cookies:會話 cookies 和持久的 cookies。

  1. 會話 Cookies:這些 cookies 是臨時的,當用戶關閉瀏覽器時會被刪除。它們適用於存儲像購物車項目列表這樣的臨時信息。
  2. 持久的 Cookies:這些 cookies 將留在用戶的電腦上,直到它們達到過期日期或被用戶手動刪除。它們用於長期追蹤,如維護用戶偏好或登錄會話。

如何在 PHP 中設置 Cookie?

在 PHP 中設置 cookie,你使用 setcookie() 函數。以下是如何操作的:

<?php
// 設置一個名為 "username" 的 cookie,值為 "JohnDoe",並在 30 天後過期
setcookie("username", "JohnDoe", time() + (86400 * 30), "/");
?>

在這個例子中,我們設置了一個名為 "username" 的 cookie,並將其值設為 "JohnDoe"。第三個參數是過期時間,它是通過將 30 天內的秒數加到當前時間(time())來計算的。第四個參數是 cookie 可用的路徑。將其設為 "/" 意味著 cookie 在整個網站上都可用。

在 PHP 中訪問 Cookies

一旦設置了 cookie,你可以使用 PHP 的 $_COOKIE 超全局數組訪問它的值。以下是如何獲取 "username" cookie 的值的例子:

<?php
if(isset($_COOKIE["username"])) {
echo "歡迎回來," . $_COOKIE["username"] . "!";
} else {
echo "歡迎,訪客!";
}
?>

在這段代碼中,我們使用 isset() 檢查 "username" cookie 是否設置。如果存在,我們顯示帶有用戶名的歡迎信息。否則,我們顯示訪客的通用歡迎信息。

刪除 Cookies

要刪除 cookie,你需要將它的過期時間設置為過去的一天。以下是如何刪除 "username" cookie 的:

<?php
// 刪除 "username" cookie
setcookie("username", "", time() - 3600);
?>

通過將過期時間設置為過去,瀏覽器會自動刪除 cookie。在這個例子中,我們將過期時間設置為一個小時前,從而有效地刪除了 "username" cookie。

就是這樣!現在你已經知道如何在 PHP 中設置、訪問和刪除 cookies。記住,應當負責任地使用 cookies,因為它們可以存儲敏感信息。始終確保你的網站遵循 cookies 管理和用戶隱私的最佳實踐。

快樂編程!

Credits: Image by storyset