• 技术文章 >后端开发 >PHP问题

    php不能获取cookie问题处理

    卡哇伊卡哇伊2020-07-06 10:11:51原创1042

    php不能获取cookie问题处理方法:首先设置一个cookie,键为a,值为value;然后在cookie字符串中搜索a的cookie并返回它的值;最后刷新浏览器,再次访问服务器的时候就多了一个a=value了。

    问题详情

    首先编写以下简单的代码:

    代码如下:

    <?php 
        setcookie('a','value');
        print $_COOKIE['a'];

    第一次访问时,报错:

    报错的原因是$_COOKIE['a']的值不存在。第二次访问:value

    相关学习推荐:php视频教程

    :为什么第一次访问的时候,会没有cookie呢??我不是先设置,再获取吗??

    :使用firefox的firebug查看”网络“:

    客户端:

    可以看到,浏览器(客户端)向服务器发出一次请求,发出请求的时候,在请求头信息中带上了各种参数,告诉服务器,我要接收什么样的文本(Accept)、什么编码格式(Accept-Encoding)、什么语言(Accept-Language)等等,当然,还把Cookie也传到了服务器(Cookie)。

    服务器端:

    第一步:setcookie('a','value')

    因为cookie是设置在客户端的,setcookie函数自己并不能设置cookie,它只能通过头信息的方式告诉浏览器说:兄弟,我要设置一个cookie,键为a,值为value,你在你那里帮我设置一下。你也可以理解为:”来,朕今天高兴,赏你一个小甜饼“。

    第二步:$_COOKIE['a']$_COOKIE['a']

    很简单,执行的操作就是在浏览器带过来的cookie字符串中搜索键为a的cookie,并返回它的值。

    很明显,这个”键为a“的cookie不可能找到,因为客户端访问服务器的时候,这个cookie压根就不存在,而前面第一步设置cookie的头信息,也还没有返回给客户端(php要从上到下把语句执行完才会返回给客户端)

    第三步:服务器返回信息

    其中,返回的头信息中带有Set-Cookie a=value,浏览器收到这个头信息,把cookie存放到电脑的某个文件中,对于不同浏览器cookie的存放位置貌似不同,这个不在本文的范围。

    刷新浏览器,再次访问服务器的时候,同样,也会把很多头信息带给服务器,只不过这次带过去的cookie中,就多了一个a=value了。所以$_COOKIE['a']自然就能从cookie字符串中找到这个键为a的cookie的值。

    以上就是php不能获取cookie问题处理的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php cookie
    上一篇:iis访问php乱码该怎么办 下一篇:php如何删除html标签
    大前端线上培训班

    相关文章推荐

    • PHP会话控制:cookie和session区别与用法深入理解• php实现cookie即时生效• php cookie 取不到怎么办• php cookie和session区别有哪些

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网