PHP - $_COOKIE:網頁持續性的甜蜜介紹

你好啊,未來的PHP法師們!今天,我們將要進入cookies這個美味的世界。不,不是那種你會泡在牛奶裡的cookies(雖然我現在也想要一個)。我們討論的是網頁cookies,這是網頁開發中的基本概念,在你的編程旅程中,你將會不斷地使用它。

PHP - $_COOKIE

Cookie是什麼?

想像一下你正在訪問你喜歡的網上商店。你將一些商品加入購物車,但接著你的貓認為追自己尾巴的時機恰到好處,你就分心了。當你稍後回到網站時,如果購物車中的商品還在該有多好?這就是cookies的用處!

Cookie是網站存儲在用戶電腦上的一小段數據。這就像網站留下的一張小紙條,用來記住關於你或你的偏好信息。Cookies讓網頁瀏覽更加個人化和方便。

在PHP中,我們使用$_COOKIE超全局數組來操作cookies。這個數組包含了瀏覽器為當前頁面發送的所有cookie值。

setcookie()函數

在我們開始製作我們的數字cookies之前,讓我們先來看看我們將要使用的主要工具:setcookie()函數。這個PHP函數讓我們能夠創建或修改cookie。

這裡是基本語法:

setcookie(name, value, expire, path, domain, secure, httponly);

讓我們分解這些參數:

參數 描述 必要?
name Cookie的名稱
value Cookie的值
expire Cookie的過期時間(以Unix時間戳為單位)
path 服務器上Cookie將可用的路徑
domain Cookie可用的域名
secure 表示Cookie是否應該只通過安全的HTTPS連接傳輸
httponly 如果設置為TRUE,Cookie將只能通過HTTP協議訪問

別擔心,如果這些看起來讓人不知所措。我們會在進行的過程中詳細介紹每一個。

如何設置Cookies

現在,讓我們動手設置一些cookies吧!記住,設置Cookie就像為後來留下一張紙條。這裡有一個簡單的例子:

<?php
setcookie("user_name", "John Doe", time() + (86400 * 30), "/");
?>

在這個例子中:

  • 我們設置了一個名為"user_name"的Cookie
  • 它的值是"John Doe"
  • 它將在30天後過期(86400秒 * 30)
  • 它將在整個網站上可用("/")

設置Cookie後,你可以使用$_COOKIE超全局數組來訪問它:

<?php
if(isset($_COOKIE['user_name'])) {
echo "歡迎回來," . $_COOKIE['user_name'] . "!";
} else {
echo "歡迎,新用戶!";
}
?>

這段代碼檢查"user_name" Cookie是否存在。如果存在,它會用名字招呼用戶。如果不存在,它假設是一個新用戶。

如何刪除Cookies

有時候,你需要清空Cookie罐。為了刪除一個Cookie,你可以將它的過期時間設置為過去:

<?php
setcookie("user_name", "", time() - 3600);
?>

這將"user_name" Cookie的過期時間設置為一小時前,從而有效地刪除它。

使用數組語法設置Cookies

如果你想在Cookies中存儲更複雜的數據,PHP允許你在設置Cookies時使用數組語法。這在你想將相關數據分組時特別有用。

這裡有一個例子:

<?php
setcookie("user[name]", "John Doe", time() + (86400 * 30), "/");
setcookie("user[email]", "[email protected]", time() + (86400 * 30), "/");
setcookie("user[preferences][theme]", "dark", time() + (86400 * 30), "/");
?>

在這個情況下,我們在"user"名下設置了多個Cookies。要稍後訪問這些值:

<?php
if(isset($_COOKIE['user'])) {
echo "姓名:" . $_COOKIE['user']['name'] . "<br>";
echo "電子郵件:" . $_COOKIE['user']['email'] . "<br>";
echo "偏好的主題:" . $_COOKIE['user']['preferences']['theme'];
}
?>

這種方法讓你可以以更有結構的方式組織你的Cookie數據。

記住,使用Cookies就像為自己(或你的網站訪客)留紙條。它們對於在頁面加載之間保持狀態、記住用戶偏好或實現如登錄表單上的"記住我"功能非常有用。

隨著你繼續你的PHP旅程,你會發現Cookies的更多用途。它們是網頁開發中的基本工具,掌握它們會讓你成為一個更有效的開發者。

所以,向前進,烘烤一些美味的Cookies吧!(也許在這個過程中抓一個真正的Cookie——編程可是個耗時的工作!)

Credits: Image by storyset