使用php设置cookies时出现无法删除cookies的情况记录
PHP主要使用setcookie()来对cookies进行设置。
这个function有高达七个参数,setcookie(name, value, expiration, path, host, secure, httponly);
由于参数比较多,所以我等凡人在使用的时候有很多值得注意的tips,否则cookies容易出现各种很二的问题。
1)name参数不要加空格或者标点,不多说,你懂的
2)类似header()与session_start(), setcookie()在调用前也不要向浏览器发送任何东西,哪怕是一个空格。所以建议需要include的php script省去?>
3)总有那么些坑爹的浏览器,当调用setcookie()的时候如果参数不全居然无法识别,所以为了万全起见,调用函数的时候还是把参数补全吧,不需要设值的参数可以用一个空字符串代替
更容易出错的还是在删除cookies的时候。
4)因为依旧是使用setcookie(),第一个参数name不变,不同的是,第二个参数value以空字符串代替,这样这个值为deleted重名cookie就会覆盖原有cookie。同时把expiration换成当前时间减去一个值,就像酱紫:
setcookie('name', '', time()-3600, '/', '',0,0);
warning!:→ → path参数一定要与创建cookie的时候保持一致,不然删不掉!删不掉cookie的后果就是:比如用户登录网站之后,点击退出,却依旧保持会员界面,这个就很坑爹有木有啊,要是公用电脑人家直接用你ID发帖子黑你你都不知道啊。
cookies存放在用户端的浏览器里,很好监视。火狐的Firebugs很好用,可以查看cookies的发送、接收、当前cookies的状态与值、路径等等。
5)这里多加一个与本文无关的session使用的要点怕忘记:每一个包含需要使用对session进行操作的php脚本的页面,都要在脚本as early as possible的地方调用 session_start(), 只有这样当前session才能在该界面有效。
浙公网安备 33010602011771号