首页 > 语言 > 关键词 > PHP,cookie,session最新资讯 > 正文

PHP技巧:关于cookie和session的分析

2008-11-19 13:08 · 稿源:code-123.com

1. PHP的COOKIE

cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。
PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。
1.1 设置cookie:
可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客户端直接发送http头来设置.
1.1.1 使用setcookie()函数设置cookie:
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] )
name: cookie变量名
value: cookie变量的值
expire: 有效期结束的时间,
path: 有效目录,
domain: 有效域名,顶级域唯一
secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以.
例子:

以下为引用的内容:

<?php
value = 'something from somewhere';

setcookie("TestCookie", value); /* 简单cookie设置 */
setcookie("TestCookie", value, time()+3600); /* 有效期1个小时 */
setcookie("TestCookie", value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
?>

设置多个cookie变量: setcookie('var[a]','value');用数组来表示变量,但他的下标不用引号.这样就可以用_COOKIE[‘var’][‘a’]来读取该COOKIE变量.

1.1.2. 使用header()设置cookie;
header("Set-Cookie: name=value[;path=path[;domain=xxx.com[;...]]");
后面的参数和上面列出setcookie函数的参数一样.
比如:

以下为引用的内容:

value = 'something from somewhere';
header("Set-Cookie:name=value");

1.2 Cookie的读取:

直接用php内置超级全局变量 _COOKIE就可以读取浏览器端的cookie.
上面例子中设置了cookie"TestCookie",现在我们来读取:

print _COOKIE['TestCookie'];

COOKIE是不是被输出了?!

1.3 删除cookie
只需把有效时间设为小于当前时间, 和把值设置为空.例如:
setcookie("name","",time()-1);
用header()类似.

1.4 常见问题解决:

1) 用setcookie()时有错误提示,可能是因为调用setcookie()前面有输出或空格.也可能你的文档使从其他字符集转换过来,文档后面可能带有BOM签名(就是在文件内容添加一些隐藏的BOM字符).解决的办法就是使你的文档不出现这种情况.还有通过使用ob_start()函数有也能处理一点.
2) _COOKIE受magic_quotes_gpc影响,可能自动转义
3) 使用的时候,有必要测试用户是否支持cookie
<!--[if !supportLineBreakNewLine]-->

1.5 cookie工作机理:

有些学习者比较冲动,没心思把原理研究,所以我把它放后面.
a) 服务器通过随着响应发送一个http的Set-Cookie头,在客户机中设置一个cookie(多个cookie要多个头).
b) 客户端自动向服务器端发送一个http的cookie头,服务器接收读取.

以下为引用的内容:

HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=something from somewhere; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html

这一行实现了cookie功能,收到这行后
Set-Cookie: TestCookie=something from somewhere; path=/
浏览器将在客户端的磁盘上创建一个cookie文件,并在里面写入:

以下为引用的内容:

TestCookie=something from somewhere;
/

这一行就是我们用setcookie('TestCookie','something from somewhere','/');的结果.也就是用header('Set-Cookie: TestCookie=something from somewhere; path=/');的结果.

2. PHP的Session

session使用过期时间设为0的cookie,并且将一个称为session ID的唯一标识符(一长串字符串),在服务器端同步生成一些session文件(可以自己定义session的保存类型),与用户机关联起来.web应用程序存贮与这些session相关的数据,并且让数据随着用户在页面之间传递.

访问网站的来客会被分配一个唯一的标识符,即所谓的会话 ID。它要么存放在客户端的 cookie,要么经由 URL 传递。

会话支持允许用户注册任意数目的变量并保留给各个请求使用。当来客访问网站时,PHP 会自动(如果 session.auto_start 被设为 1)或在用户请求时(由 session_start() 明确调用或 session_register() 暗中调用)检查请求中是否发送了特定的会话 ID。如果是,则之前保存的环境就被重建。

2.1 sessionID的传送

网友热搜:

  • 相关推荐
  • 大家在看
  • 用php源码搭建二维码加密支付平台

    今天给大家介绍的项目-"用php源码搭建二维码加密支付平台",可以说,有一定的技术门槛,有一定的壁垒,因为需要搭建网站并且运营。正是因为有一定的门槛,需要学习和准备一些东西,才能挡住大多数用户的进入,才能长久的赚取利润。这些技术门槛,和需要准备的一些东西,我今天会详细的,手把手的教大家,如果你肯学习,并且有一定的网络基础,我相信可以很快突破难点,搭建成功。一旦搭建成功,运用一些推广的手段,后期

  • 华为云FusionAccess连续四年中国桌面云市场第一

    IDC最新研究数据显示,华为云FusionAccess桌面云一马当先,又一次斩获中国桌面云市场第一。这已经是自该报告2016年发布以来,华为连续第四年领跑中国桌面云市场,显示了客户对华为在桌面云市场多年来持续投入的认可。 IDC数据显示,华为不仅继续在其耕耘多年的政府市场持续领先,并且在金融、制造、能源等更多的行业也越来越受欢迎。同时期待FusionAccess基于华为鲲鹏生态会有更加优异的表现。 2020年,华为云FusionAccess针对日?

  • 唯一坚持MLC闪存!三星980 PRO PCIe 4.0 SSD韩国过审

    PCIe 4.0 SSD已经多如牛毛,但说到闪存,清一色都是TLC,而很多人念念不忘的MLC已经几乎绝迹。如果你实在需要MLC,可以等等三星980 PRO,因为它是如今几乎唯一硕果仅存的消费级MLC SSD。三星9

  • 为iPhone 12上市做准备 台积电月底前投产A14 Bionic芯片

    综合当前比较可靠的消息,今年秋季苹果的年度旗舰iPhone 12系列将依旧提供iPhone 12、iPhone 12Max和iPhone 12 Pro、iPhone 12 Pro Max两个版本共四款机型。如今6月也接近尾声,距离iPhone 12系列旗舰的亮相又更近了一步。现在有最新消息,近日有媒体透露称,该机所要搭载的全新5nm A14芯片即将于本月底开始量产。据中国台湾媒体ePrice最新发布的消息显示,台积电预计在本月底之前开始量产iPhone 12系列所将首发搭载的?

  • playstation:请尽情享受以《刀剑神域:Alicization》为舞台的《UW》世界

    预定于 7 月 9 日(星期四)发售的“刀剑神域”游戏系列最新作、即将登陆PlayStation? 4 平台的“SWORD ART ONLINE Alicization Lycoris”游戏,是一款以原作和动画中看到的虚拟世界“Under World”为舞台,通过操作Kirito(桐人)在《Alicization》篇的世界中冒险的RPG游戏。故事再现了TV动画《Alicization》篇中前半战、从前半战最终话到游戏原创路线的分歧这一部分剧情。值得一提的是,该作故事内容不是原有的《Alicization》的

  • 罕见MLC闪存!三星980 PRO PCIe 4.0 SSD两个月内见

    无论是在消费级市场,还是数据中心领域,PCIe 4.0 SSD产品都已经相当丰富,而作为SSD界杠把子的三星电子,早在年初CES 2020上就展示了自己的首款消费级PCIe 4.0 SSD 980 PRO,半年过去了却迟迟没

  • 爆料者:iPhone 12 Pro/Pro Max将配备120Hz ProMtion显示屏

    【TechWeb】6月28日消息,据国外媒体报道,一位爆料者称,iPhone 12 Pro和iPhone Pro Max将配备120Hz刷新率的ProMtion显示屏。此前,外媒报道称,今年的新款iPhone(iPhone 12)共有4款:一款为5.4英寸,两款为6.1英寸,一款为6.7英寸。这四款iPhone均配备OLED(有机发光二极管)面板。目前,iPhone的最大刷新率为60Hz。早在去年10月份,就有报道称,苹果今年将发布一款配备120Hz刷新率屏幕的iPhone。此外,国外知名爆料人此前也?

  • 抵制破解!索尼上线全新的PlayStation BUG悬赏计划

    游戏主机一直是黑客破解的重点,包括任天堂Switch和索尼PS4在内的现世代几大游戏主机,均不同程度上的遭遇了破解。索尼全新一代游戏主机PlayStation 5已经确定将于今年圣诞假期期间正式发布,为了不再重蹈此前的覆辙,索尼今日正式上线了新的PlayStation BUG悬赏计划,如果有开发者或者用户发现了PS系统以及线上服务的重大安全漏洞,索尼将会提供5万美元的现金奖励。据悉,索尼目前已经向发现PS漏洞的黑客

  • 华为HMS Core自有COVID-19联系人追踪API曝光

    ​谷歌和苹果已经发布了 COVID-19 联系人追踪 API,但依然有数百万不使用 Google Play Services 的用户无法参与该计划,其中就包括国内手机厂商华为。援引外媒 XDA-Developers 报道,华为在对 HMS Core 的更新中引入了自家的联系人追踪 API。

  • Serverless架构的前世今生

    一、Serverless简介云计算的不断发展,涌现出很多改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多通用能力变成了一种服务。但无论这些技术应用在哪里,帮助企业“降本增效”是技术变革永恒的主题。Serverless架构的出现,带来了跨越式的变革。Serverless下主机管理、操作系统管理、基础软件的部署运维、资源分配和扩缩容能力全部由云厂?

  • 和平精英SS8赛季手册寻宝行动全攻略 SS8赛季手册寻宝行动教程

    ​和平精英SS8赛季手册寻宝行动是新增的玩法,在其中可以获得非常多的奖励,但是一些玩家还不清楚怎么去玩寻宝行动,下面就来为大家分享一下和平精英SS8赛季手册寻宝行动全攻略。

  • 新兴黑马资本Block Vision Capital助力区块链生态建设

    Block Vision Capital区块愿景基金是一家于 2020 年初成立的新兴资本,专注于区块链资本市场的数字资产投资管理基金,是中国新兴的加密数字货币对冲基金和风险投资基金之一,致力于投资并帮助区块链行业中极具潜力与发展前景的企业,并间接完善区块链行业的基础设施与生态环境。高投资回报率惹圈内关注作为一家新兴的资本机构,Block Vision Capital区块愿景基金投资领域涉及数字资产服务平台、区块链投资孵化机构、区块链技术项目

  • PlayStation5 发布会 索尼PS5 硬件规格配置详细介绍

    索尼PlayStation 5 发布会于北京时间今天凌晨正式召开,传闻已久的主机外观也终于第一次亮相。与此同时,索尼还公布了第一批 PS5 游戏预告片,既有来自第一方工作室的 3A 大作,也有不少制作精良的独立游戏。

  • 杨柘入职小米后第一条微博:分享《Joie De Vivre》

    6月2日,小米正式官宣任命杨柘为小米集团副总裁、中国区首席营销官(CMO),负责中国区市场营销战略制定、品牌建设等工作。随后,杨柘本人也启用了荒废已久的个人微博,将认证修改为小米集团副

  • PCIe 6.0准正式版本周敲定:8倍带宽

    本周,PCI-SIG组织将发布PCIe 6.0最新标准草案,版本号可能是v0.7或者0.9,可以说是准正式版了。今年2月,v0.5版本签署,但仅属于初始草案规范。按计划,1.0正式版将在2021年正式发布,而等

  • 和平精英SS8赛季手册全部奖励汇总 SS8赛季手册皮肤奖励一览

    ​和平精英的SS8赛季手册马上就要上线了,很多玩家还不清楚此次S8的赛季手册有什么内容,所以今天就来为大家分享一下和平精英SS8赛季手册全部奖励汇总。

  • Filecoin投资,哪种方式最靠谱?

    2019 年我们预测 2020 年的机会时,列举了很多关键词,包含有矿币减半、Eth2. 0 上线、波卡主网上线、Filecoin挖矿、Defi、产业联盟链等等,但实际结果表明,很多都在市场考验中受挫。 但Filecoin却越来越受欢迎,市场给与了很高的期待值,随着主网上线临近,有关Filecoin的话题热度持续攀高,参与生态的节点每年以10x速度增长,目前已经达到400k+节点。 根据以往的投资经验,如果项目预期与项目实际应用价值不匹配,它注定成为资

  • macOS Big Sur新功能有哪些 macOS新系统功能汇总

    苹果2020WWDC开发者发布会一直以来都是新系统发布的重要时间,今年也不例外,在6月23日凌晨的发布会上苹果就公布了macOS Big Sur新系统,这次发布的系统更新增加了哪些新功能呢,我们来一起了解下。

  • 6.1万元!戴尔发布全新Precision工作站:最轻/最小/最亮占全了

    除了Latitude系列商用本,6月12日的新品发布会上,戴尔还推出了全系列的新款Precision工作站,包括7750、7550顶级移动工作站,5750、5550高端移动工作站,3551、3550主流移动工作站,3640、34

  • 微软对索尼露怯?高管:Xbox Series X今年销量如何没什么大不了

    PS5正式发布会定于6月12日凌晨4点举办,索尼此次预计会公开PS5量产机外形、第一批首发的一方/三方游戏阵容等。据外媒报道,微软游戏业务执行副总裁、Xbox掌柜Phil Spencer受访时表示,Xbox Se

  • 参与评论
文明上网理性发言,请遵守新闻评论服务协议