當前位置: 首頁> 最新文章列表> PHP操作Cookie的完整指南:創建、讀取、修改與刪除

PHP操作Cookie的完整指南:創建、讀取、修改與刪除

gitbox 2025-07-02

Cookie介紹

Cookie是存儲在用戶設備上的小文件,用於在瀏覽器和服務器之間傳遞信息。 PHP提供了內置的setcookie()函數,用以創建、修改和刪除Cookie。

創建和設置Cookie

使用setcookie()函數可以創建一個Cookie。傳遞Cookie的名稱、值和其他可選參數,即可完成設置。

例如,創建一個名為"username"、值為"John"的Cookie:

 setcookie("username", "John");

通過設置expires參數,可以指定Cookie的過期時間,以下示例將Cookie設置為一天后過期:

 $expiry = time() + 24 * 60 * 60; // 一天后
setcookie("username", "John", $expiry);

可以使用path參數來限制Cookie的有效路徑,默認情況下,Cookie對當前目錄及其子目錄均可用。以下示例將路徑設置為根目錄:

 setcookie("username", "John", $expiry, "/");

通過domain參數,可以限定Cookie的作用域域名。默認Cookie對當前域名及其子域名有效。示例:

 setcookie("username", "John", $expiry, "/", ".example.com");

secure參數用於指定Cookie是否僅通過HTTPS傳輸,保障敏感信息安全:

 setcookie("username", "John", $expiry, "/", ".example.com", true);

獲取和使用Cookie的值

PHP通過超全局變量$_COOKIE來獲取客戶端發送的Cookie數據,該變量是一個關聯數組,鍵為Cookie名,值為對應的Cookie值。

 $username = $_COOKIE["username"];
echo "Welcome back, " . $username;

要判斷某個Cookie是否存在,可以用isset()函數:

 if (isset($_COOKIE["username"])) {
    echo "Welcome back, " . $_COOKIE["username"];
} else {
    echo "Welcome guest";
}

修改和刪除Cookie

修改Cookie只需調用setcookie()重新設置相同名稱的Cookie,並傳入新值:

 setcookie("username", "Jane", $expiry, "/", ".example.com");

刪除Cookie的方法是將其過期時間設置為過去的時間:

 setcookie("username", "", time() - 3600); // 立即過期,刪除Cookie

注意事項

安全性

由於Cookie存儲於用戶設備,信息可能被惡意竊取。建議僅存儲必要信息,使用secure參數確保通過HTTPS傳輸,且對敏感內容進行加密保護。

Cookie大小限制

單個Cookie大小一般限制在4KB左右,不同瀏覽器有所差異,超出限制時可能被拒絕存儲。

相容性

不同瀏覽器處理Cookie的機制不盡相同,開發時需注意兼容性,避免影響用戶體驗。

總結

PHP中通過setcookie()函數可以輕鬆管理Cookie的創建、讀取、修改和刪除。使用$_COOKIE數組能方便地訪問Cookie數據。務必關注安全性和瀏覽器兼容性,確保應用的穩定和安全。