- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 PHP中Session与Cookie
编写Web互动程序,保存用户的登录信息是十分必要的,这样可以提高网站对用户的吸引力。目前常见的存储机制有两种:一种是把用户信息存储于服务器端的主机上的Session机制;另一种是把用户信息存储于客户端即客户机上的Cookie(小甜饼)机制。这两种机制各有各的特点,这一章就来为读者介绍PHP中的Session和Cookie。本章内容包括:Session的使用注意事项、有关的Session函数及它们的使用方法、Cookie的使用、PHP中的Cookie相关函数及使用、为Cookie设置生命期、Cookie综合运用实例。
11.1 SESSION的使用
Session适合存储信息量比较少的用户信息。如果用户需要存储的信息量相对较少,并且对存储内容不要求长时间存储时,使用Session把信息存储于服务器端会比较适合。Session会话允许用户注册任意数目的变量并保留给各个请求使用。当用户访问网站时,PHP会自动(如果php.ini中的session.auto_start被设为1)或在用户请求时(由session_start()明确调用或session_register()间接调用)检查请求中是否发送了特定的会话ID。如果是,则之前保存的环境就被重建。这一节就为读者介绍PHP中Session的使用。
11.1.1 如何使用Session
PHP中有多个Session函数来实现对Session的操作。有了这些函数,使用Session就变得相当简单。这一小节就为读者介绍PHP中的Session函数及它们的使用方法。PHP中常用的Session函数有以下几个,如表所示。
【示例11-1】以下代码实现了注册Session变量,显示Session变量的功能。
函数名
作用
参数及返回值
session_start(void)
此函数初始化一个新的Session,若该客户已在Session之中,则连上原有的Session
该函数没有参数,且返回值均为true。需要注意的一点是在session_start()函数之前不能有任何的内容输出,否则就会发生错误
session_destroy(void)
此函数结束目前的session
与session_start()函数一样,session_destroy()函数也没有参数,且返回值也均为true
session_name(string [name])
本函数可取得或者重新设定目前Session的名称
若无可选参数name则表示单单获取目前Session名称,加上参数则表示将Session名称设为参数name
session_module_name(string [module])
本函数可取得或者重新设定目前Session的模组
若无可选参数module 则表示只获取目前Session的模组,加上参数则表示将Session模组设为参数module
session_save_path(string [path])
本函数可取得或者重新设定目前存放Session的路径
若无可选参数path则表示只有取得目前Session的路径目录名,加上参数path则表示将Session存在新的路径上
session_id(string [id])函数
本函数可取得或者重新设定目前存放Session的代号
若无参数id则表示只有取得目前Session的代号,加上参数则表示将Session代号设成新指定的id。输入及传回均为字串
session_decode(string data)
本函数可将Session内的资料解码
参数data即为欲解码的资料。成功则传回true值,否则传回false
session_encode(void)
本函数可将Session资料编码,编码以ZEND引擎做杂凑编码
本函数没有参数。成功则传回true值,否则传回false
11.1.2 Session使用实例
上面的例子只是Session最简单的应用,实际上Session能做的事情远不止于此,它能存储多种信息,结合程序能做更多的事情。
【示例11-2】以下代码演示使用Session实现一个简单的站点计数器。
11.1.3 使用Session的注意事项
在使用Session时有下列事项需要引起注意:
如果在PHP.ini文件中启用了session.auto_start,就不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象。
请求结束后所有注册的变量都会被序列化。
另外有些类型的数据不能被序列化,因此也就不能保存在会话中。
默认情况下,所有与特定会话相关的数据都被存储在由php.ini文件的session.save_path选项所指定的目录下的一个文件中。
Sessio
原创力文档


文档评论(0)