php第一次无法获取cookie问题处理
《PHP实战:php第一次无法获取cookie问题处理》要点: PHP利用首先编写以下简单的代码:
代码如下:
<?php ??? setcookie('a','value'); ??? print $_COOKIE['a']; 第一次拜访时,报错: 报错的原因是$_COOKIE['a']的值不存在.第二次拜访: PHP利用 问:为什么第一次拜访的时候,会没有cookie呢??我不是先设置,再获取吗?? PHP利用答:使用firefox的firebug查看”网络“: PHP利用 PHP利用客户端: 可以看到,浏览器(客户端)向服务器发出一次哀求,发出哀求的时候,在哀求头信息中带上了各种参数,告诉服务器,我要接收什么样的文本(Accept)、什么编码格式(Accept-Encoding)、什么语言(Accept-Language)等等,当然,还把Cookie也传到了服务器(Cookie). PHP利用服务器端: PHP利用第一步:setcookie('a','value') 因为cookie是设置在客户端的,setcookie函数自己并不能设置cookie,它只能通过头信息的方式告诉浏览器说:兄弟,我要设置一个cookie,键为a,值为value,你在你那里帮我设置一下.你也可以理解为:”来,朕本日高兴,赏你一个小甜饼“. PHP利用第二步:$_COOKIE['a']$_COOKIE['a'] 很简单,执行的操作便是在浏览器带过来的cookie字符串中搜索键为a的cookie,并返回它的值. PHP利用 很明显,这个”键为a“的cookie不可能找到,因为客户端拜访服务器的时候,这个cookie压根就不存在,而前面第一步设置cookie的头信息,也还没有返回给客户端(php要从上到下把语句执行完才会返回给客户端) 第三步:服务器返复书息 其中,返回的头信息中带有”Set-Cookie a=value“,浏览器收到这个头信息,把cookie存放到电脑的某个文件中,对于分歧浏览器cookie的存放位置貌似分歧,这个不在本文的范围. PHP利用 刷新浏览器,再次拜访服务器的时候,同样,也会把很多头信息带给服务器,只不过这次带过去的cookie中,就多了一个a=value了.所心$_COOKIE['a']自然就能从cookie字符串中找到这个键为a的cookie的值. PHP利用 《PHP实战:php第一次无法获取cookie问题处理》是否对您有启发,欢迎查看更多与《PHP实战:php第一次无法获取cookie问题处理》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |