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+javascript模拟Matrix画面
Oct 09 PHP
PHP新手上路(十三)
Oct 09 PHP
php 破解防盗链图片函数
Dec 09 PHP
php面向对象全攻略 (四)构造方法与析构方法
Sep 30 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php在文件指定行中写入代码的方法
May 23 PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
两种php去除二维数组的重复项方法
Nov 04 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
centos 7.2下搭建LNMP环境教程
Nov 20 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
PHP脚本数据库功能详解(下)
2006/10/09 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
prototype class详解
2006/09/07 Javascript
XENON基于JSON变种
2010/07/27 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
new Date()问题在ie8下面的处理方法
2014/07/31 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
微信小程序 wxapp视图容器 view详解
2016/10/31 Javascript
基于Angularjs+mybatis实现二级评论系统(仿简书)
2017/02/13 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
mpvue构建小程序的方法(步骤+地址)
2018/05/22 Javascript
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
python版本单链表实现代码
2018/09/28 Python
python科学计算之narray对象用法
2019/11/25 Python
Python实现自动访问网页的例子
2020/02/21 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
二年级学生评语大全
2014/04/23 职场文书
元旦趣味活动方案
2014/08/22 职场文书
领导班子四风问题对照检查材料
2014/09/27 职场文书
讲文明倡议书
2015/04/29 职场文书
教师外出学习心得体会
2016/01/18 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android