首先,在PHP中设置一个新Cookie的基本语法如下:
php
setcookie(name, value, expire, path, domain, secure, httponly);
- `name`:表示Cookie的名字。
- `value`:是您想要储存于该Cookie中的值。
- `expire`:是一个Unix时间戳或日期格式的时间点,过了这个时刻后Cookie将会过期并从用户的电脑上自动删除,默认情况下,如果省略此参数或者其为0,则当浏览器关闭时Cookie就会失效(称为session cookie)。
例如要设定一个有效期3600秒(1小时)的名为'user_id' 的Cookie:
php
setcookie('user_id', '123456', time() + 3600);
如果您想更改已存在的Cookie值,实际上并没有直接的“update”函数可用。因为HTTP协议本身并不支持对已经发送到浏览器端的Cookie进行原地修改;而是通过重新定义同名Cookie来达到替换效果——即将新的键值对以同样的名称再次设入,并确保时效未到期以便覆盖旧有内容:
php
// 假如之前有一个 user_status 的 Cookie 需要更改为 "active"
setcookie('user_status', 'inactive'); // 先清除可能存在的老状态
setcookie(
'user_status',
'active',
time() + (60 * 60), // 设置有效期为一小时
'/', // 路径默认为整个域下都有效
'', // 若不指定域名则仅当前域生效
false // 是否只允许HTTPS传输,这里我们假设不需要强制安全连接
);
// 此操作实际是在客户端生成了一个新的 ‘user_status’ Cookie,从而实现了‘修改’的效果
另外要注意的是,由于浏览器处理Cookie的方式及网络延迟等因素影响,建议在同一请求周期内尽早完成所有与Cookie相关的变更操作。同时出于安全性考虑,请尽量避免存取重要且敏感的信息进Cookie,可以选择使用Session或者其他更为健壮的安全方案来进行此类数据管理。