以下是PHP中setcookie()函数的用法详解及示例:
1. 基础用法:设置Cookie
// 设置一个名为"username"的Cookie,值为"John",有效期1小时
setcookie("username", "John", time() + 3600, "/");参数解释:
"username":Cookie名称。"John":Cookie值。time() + 3600:过期时间(当前时间+3600秒)。"/":作用路径(全站有效)。
2. 设置安全Cookie(HTTPS专用)
// 仅通过HTTPS传输,禁止JavaScript访问
setcookie("session_id", "abc123", time() + 86400, "/", "example.com", true, true);新增参数:
"example.com":作用域名。true:仅HTTPS传输(安全标志)。true:禁止JavaScript访问(HttpOnly)。
3. 删除Cookie
// 删除名为"username"的Cookie
setcookie("username", "", time() - 3600, "/");关键点:
值设为空字符串
""。过期时间设为过去(
time() - 3600)。
4. 设置数组型Cookie
// 存储数组数据(自动序列化)
$userData = ["name" => "Alice", "age" => 25];
setcookie("user_data", json_encode($userData), time() + 7200, "/");注意:需用
json_encode()转换数组。
5. 完整参数列表
注意事项
输出顺序:
setcookie()必须在任何HTML输出前调用,否则报错。读取时机:新设置的Cookie需刷新页面后才能在
$_COOKIE中读取。路径/域名:删除时需与原设置一致(见前文详解)。