一个非常新手的问题,但与我裸露......
关于使用PHP创建cookie,使用'setcookie'的'expire'参数和将cookie设置为“”之间有什么区别?换句话说,我有一个收集信息的cookie,在某些时候我将获取所有这些信息并发送它,在那之后我想基本上破坏cookie。由于(根据我的理解)cookie存储在客户端,我的选项是Expire或设置为“”。从我读到的内容来看,'Expire'只是将cookie设置为0,所以它只是关于值; int 0还是空字符串?
此处还有一个关于扩展原始问题的问题。 AKA如果我有一个问题我发布了,然后想问一个类似的问题,我是否编辑原始问题并添加这个新部分或开始一个新问题(就像我在这里做的那样)?
答案 0 :(得分:2)
当您设置cookie然后它存储到客户端浏览器时,如果您设置expire参数,那么cookie将在客户端计算机给定时间后过期(删除),如果您将cookie设置为0,那么cookie将保留在客户端值为0的浏览器。
答案 1 :(得分:0)
将值设置为“”只会这样做! Cookie仍然有效,但值为空。这是不好的做法,因为它打开了恶意代码的大门,以便以后使用该cookie。过期cookie会将其过期时间设置为过去的某个时间点,从而使cookie无法用于客户端浏览器。
当过期时间设置为某个时间点时,Cookie会被“销毁”。此时,客户端浏览器会忽略它们。
答案 2 :(得分:0)
重要的是,一个cookie将过期,即使没有创建到服务器的HTTP请求(例如没有点击),但只在请求执行期间手动将其设置为空 强>
这意味着,
所以,你在谈论服务器和客户端之间不同的责任分配。
答案 3 :(得分:0)
不确定“Expire”是什么意思,但如果它指的是setcookie的第3个参数,那么它应该是int。
这将在浏览器关闭时删除cookie
setcookie($cookie_name, $value, 0, {$path});
与setcookie($cookie_name, $value);
这将保留cookie,直到您希望它为止:
$keep_cookie = 60*10; //10 minutes
setcookie($cookie_name, $value, time()+$keep_cookie, {$path});