Cookie是存儲在用戶設備上的小文件,用於在瀏覽器和服務器之間傳遞信息。 PHP提供了內置的setcookie()函數,用以創建、修改和刪除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);
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只需調用setcookie()重新設置相同名稱的Cookie,並傳入新值:
setcookie("username", "Jane", $expiry, "/", ".example.com");
刪除Cookie的方法是將其過期時間設置為過去的時間:
setcookie("username", "", time() - 3600); // 立即過期,刪除Cookie
由於Cookie存儲於用戶設備,信息可能被惡意竊取。建議僅存儲必要信息,使用secure參數確保通過HTTPS傳輸,且對敏感內容進行加密保護。
單個Cookie大小一般限制在4KB左右,不同瀏覽器有所差異,超出限制時可能被拒絕存儲。
不同瀏覽器處理Cookie的機制不盡相同,開發時需注意兼容性,避免影響用戶體驗。
PHP中通過setcookie()函數可以輕鬆管理Cookie的創建、讀取、修改和刪除。使用$_COOKIE數組能方便地訪問Cookie數據。務必關注安全性和瀏覽器兼容性,確保應用的穩定和安全。