PHP5.5.9版本中COOKIE的奇怪现象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP5.5.9版本中COOKIE的奇怪现象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2157字,纯文字阅读大概需要4分钟。
内容图文
我在localhost下建了四个文件/1.php
/a/1.php
/test/1.php
/test/a/1.php
文件中的代码都是一样的
我本以为,所有页面打开后,反复刷新,直到所有的cookie都设置完,结果应该是一样的。
但实际上不是
/1.php array(1) { ["/var/www/html"]=> string(13) "/var/www/html" }
/a/1.php array(2) { ["/var/www/html/a"]=> string(15) "/var/www/html/a" ["/var/www/html"]=> string(13) "/var/www/html" }
/test/1.php array(2) { ["/var/www/html/test"]=> string(18) "/var/www/html/test" ["/var/www/html"]=> string(13) "/var/www/html" }
/test/a/1.php array(3) { ["/var/www/html/test/a"]=> string(20) "/var/www/html/test/a" ["/var/www/html/test"]=> string(18) "/var/www/html/test" ["/var/www/html"]=> string(13) "/var/www/html" }
明显看出 php的$__COOKIE 获取的cookie是文件所在层级到根目录,这个范围中设置的cookie。而更深层的文件设置的cookie和平级但不同目录的文件设置的cookie,是获取不到的。
我想问
假设 /test/1.php 文件要获取/test/a/1.php 文件设置的cookie,怎么做到呢?
这种现象出现的原理是什么呢?
回复内容:
我在localhost下建了四个文件
/1.php
/a/1.php
/test/1.php
/test/a/1.php
文件中的代码都是一样的
我本以为,所有页面打开后,反复刷新,直到所有的cookie都设置完,结果应该是一样的。
但实际上不是
/1.php array(1) { ["/var/www/html"]=> string(13) "/var/www/html" }
/a/1.php array(2) { ["/var/www/html/a"]=> string(15) "/var/www/html/a" ["/var/www/html"]=> string(13) "/var/www/html" }
/test/1.php array(2) { ["/var/www/html/test"]=> string(18) "/var/www/html/test" ["/var/www/html"]=> string(13) "/var/www/html" }
/test/a/1.php array(3) { ["/var/www/html/test/a"]=> string(20) "/var/www/html/test/a" ["/var/www/html/test"]=> string(18) "/var/www/html/test" ["/var/www/html"]=> string(13) "/var/www/html" }
明显看出 php的$__COOKIE 获取的cookie是文件所在层级到根目录,这个范围中设置的cookie。而更深层的文件设置的cookie和平级但不同目录的文件设置的cookie,是获取不到的。
我想问
假设 /test/1.php 文件要获取/test/a/1.php 文件设置的cookie,怎么做到呢?
这种现象出现的原理是什么呢?
你去看下setcookie的文档。
setcookie的第三个参数path可以定义cookie生效的目录。 把path设置成/, 就说明cookie可以在域名下公用。
这种现象防止cookie变量冲突,也更安全。
内容总结
以上是互联网集市为您收集整理的PHP5.5.9版本中COOKIE的奇怪现象全部内容,希望文章能够帮你解决PHP5.5.9版本中COOKIE的奇怪现象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。