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数据。务必关注安全性和浏览器兼容性,确保应用的稳定和安全。