cookie与SESSIONID

cookie,session的介绍:https://blog.csdn.net/xybelieve1990/article/details/49948795

setcookie()函数注意点:

      ①如果只给了键不给值,那么就是在删除改键。

      ②cookie的设置是有覆盖性的。但是,想要替换掉cookie的成员,不仅键要相同,作用域也要相同,如果不同就会另外添加新的成员来存放数据,如下图:

     还有一点要注意,setcookie()默认的path参数是文件当前的文件夹,但是有些不一样(见上图第三项是默认值),和我们自己设置的差了末尾的斜杠‘/’。PS:去掉斜杠我也不懂具体是什么情况,但是它们两之间在获取值的优先级上差别很大。

     那么问题来了,我们获取$_COOKIE['a']的时候到底是什么值?

     经过多种实验得出:取值的优先级和函数嵌套类似,越靠近的那一层最先获取。而路径末尾缺少斜杠的优先级介于前后两者之间。即:/</web</web/</web/con</web/con/。

    取值的时候就是按照这个优先级来确定的。

③想要手动设置cookie覆盖session_start()设置的cookie,一定要注意作用域要相同,否则是无法覆盖,删除的。

例如:客户端cookie已经有了PHPSESSION(由session_start()设置的),想要删掉:

错误:setcookie('PHPSESSID');

正确:setcookie('PHPSESSID',null,0,"/");

总之,cookie的修改必须是键,和作用域都相同才行。

猜你喜欢

转载自blog.csdn.net/qq_30975339/article/details/84729167