今天在用Cookie的时候发现对Cookie使用还不是很熟练,以下是最近碰到和自己总结的:
坑:在页面Ahttp://test.com/login设置了cookie(setcooke("user","小明",time()+3600)), 跳转到页面Bhttp://test.com/user,并在页面B设置cookie(setcookie("mobile","1885245454",time()+3600))后,跳转到页面Chttp://test.com/login/info结果在C页面只可以看到页面A的cookie。
解决:在设置Cookie时设置固定的path为服务器目录(setcookie("user","小明",time()+3600,"/"))
总结:页面A时setcookie时创建了PATH=login的一个Cookie, 页面B时setcookie时创建了PATH=user的一个Cookie,页面C获取时获取的是PATH=login以及子集的cookie , 当设置PATH=/时所设置的Cookie属于当前域名下,所有属于此域名的Cookie都可以获得到
setcookie(string name,string value,int expire,string path,string domain,int secure)
1.name => 参数
2. value => 参数对应值
3. path => 用来指定cookie被发送到服务器的哪一个目录路径下 (WEB服务器页会自动传递当前路径给浏览器.指定路径会强制服务器使用设置的路径. 在一个目录页面里设的cookie在另一个目录的页面里是看不到的)
4. domain => 能够在浏览器端对cookie的发送进行限定.
5. secure => 表示这个cookie是否通过加密的HTTPS协议在网络上传输
#注:当使用PHP的setcookie时 , $_COOKIE全局数组并不马上生效而是在下一个面才生效, 所以想马上生效的同学需要手写一下$_COOKIE[] , 删除COOKIE也是一个道理, 需要对想删除的COOKIE进行手动的unset($_COOKIE["user"])
坑:在页面Ahttp://test.com/login设置了cookie(setcooke("user","小明",time()+3600)), 跳转到页面Bhttp://test.com/user,并在页面B设置cookie(setcookie("mobile","1885245454",time()+3600))后,跳转到页面Chttp://test.com/login/info结果在C页面只可以看到页面A的cookie。
解决:在设置Cookie时设置固定的path为服务器目录(setcookie("user","小明",time()+3600,"/"))
总结:页面A时setcookie时创建了PATH=login的一个Cookie, 页面B时setcookie时创建了PATH=user的一个Cookie,页面C获取时获取的是PATH=login以及子集的cookie , 当设置PATH=/时所设置的Cookie属于当前域名下,所有属于此域名的Cookie都可以获得到
setcookie(string name,string value,int expire,string path,string domain,int secure)
1.name => 参数
2. value => 参数对应值
3. path => 用来指定cookie被发送到服务器的哪一个目录路径下 (WEB服务器页会自动传递当前路径给浏览器.指定路径会强制服务器使用设置的路径. 在一个目录页面里设的cookie在另一个目录的页面里是看不到的)
4. domain => 能够在浏览器端对cookie的发送进行限定.
5. secure => 表示这个cookie是否通过加密的HTTPS协议在网络上传输
#注:当使用PHP的setcookie时 , $_COOKIE全局数组并不马上生效而是在下一个面才生效, 所以想马上生效的同学需要手写一下$_COOKIE[] , 删除COOKIE也是一个道理, 需要对想删除的COOKIE进行手动的unset($_COOKIE["user"])