php第一次无法获取cookie问题处理


Posted in PHP onDecember 15, 2014

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

<?php 

    setcookie('a','value');

    print $_COOKIE['a'];

第一次访问时,报错:php第一次无法获取cookie问题处理

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

php第一次无法获取cookie问题处理

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

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

php第一次无法获取cookie问题处理

客户端:

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

服务器端:

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

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

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

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

php第一次无法获取cookie问题处理

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

第三步:服务器返回信息

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

php第一次无法获取cookie问题处理

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

php第一次无法获取cookie问题处理

PHP 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
Oct 09 PHP
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
PHP入门学习笔记之一
Oct 12 PHP
php GeoIP的使用教程
Mar 09 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
Session 失效的原因汇总及解决丢失办法
Sep 30 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
详解PHP归并排序的实现
Oct 18 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
php面向对象程序设计入门教程
Jun 22 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
Dec 15 #PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
Dec 15 #PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 #PHP
PHP中Memcache操作类及用法实例
Dec 12 #PHP
PHP实现PDO的mysql数据库操作类
Dec 12 #PHP
PHP实现的sqlite数据库连接类
Dec 12 #PHP
php+mysql数据库实现无限分类的方法
Dec 12 #PHP
You might like
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
php检测文本的编码
2015/07/26 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
javascript Array.remove() 数组删除
2009/08/06 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
详解vue-resource promise兼容性问题
2017/06/20 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
对Python 语音识别框架详解
2018/12/24 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
详解Python安装tesserocr遇到的各种问题及解决办法
2019/03/07 Python
Django框架封装外部函数示例
2019/05/28 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
python 有效的括号的实现代码示例
2019/11/11 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
基于Python绘制个人足迹地图
2020/06/01 Python
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
区域销售经理职责
2013/12/22 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
学习雷锋精神倡议书
2015/04/27 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python