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 发送数据
Oct 09 PHP
PHP产生随机字符串函数
Dec 06 PHP
php实现mysql数据库备份类
Mar 20 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
Apr 26 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
PHP四大安全策略
Mar 12 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
Jan 21 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中json_encode中文编码问题分析
2011/09/13 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php静态文件生成类实例分析
2015/01/03 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python协程的用法和例子详解
2017/09/09 Python
快速查询Python文档方法分享
2017/12/27 Python
Python爬虫_城市公交、地铁站点和线路数据采集实例
2018/01/10 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
python openCV自制绘画板
2020/10/27 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
武汉东之林科技有限公司机试
2013/09/17 面试题
关于青春的演讲稿
2014/05/05 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
党员学习正风肃纪思想汇报
2014/09/12 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
微观世界观后感
2015/06/10 职场文书
小学教师教育随笔
2015/08/14 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers