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操作mysql函数详解,mysql和php交互函数
May 19 PHP
php数组函数序列之rsort() - 对数组的元素值进行降序排序
Nov 02 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
解析Ubuntu下crontab命令的用法
Jun 24 PHP
php上传文件,创建递归目录的实例代码
Oct 18 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
Sep 29 PHP
php与阿里云短信接口接入操作案例分析
May 27 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
无线电的诞生过程
2021/03/01 无线电
PHP实现的oracle分页函数实例
2016/01/25 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
初识ThinkPHP控制器
2016/04/07 PHP
php中this关键字用法分析
2016/12/07 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
AngularJS 最常用的功能汇总
2016/02/17 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
2017/12/22 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
解决python 上传图片限制格式问题
2019/10/30 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
最新会计专业求职信范文
2014/01/28 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
525心理活动总结
2014/07/04 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
Python快速实现一键抠图功能的全过程
2021/06/29 Python