第15单元__会话处理(zend_session).pptVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第15单元__会话处理(zend_session)

第15章 会话处理(Zend_Session) 在计算机语言中,会话是一种面向连接的可靠通信方式。而会话处理机制,即是指编程语言实现基于会话的通信的方式。在PHP中,会话(session)代表服务器端与客户端之间的一种持久的状态数据。使用Zend Framework的Session可以在由相同客户端发起的多个页面请求之间,管理和保护会话数据。本章介绍如何使用Zend_Session组件来实现会话的处理。 15.1 Zend_Session会话简介 在Zend_Session中的会话数据是对Cookie数据的扩展。但该数据又与Cookie数据有所不同。二者最明显的区别就是会话数据不储存在客户端,而Cookie则通常保存在客户端。会话数据仅在服务器端源代码使用时,才通过回应客户端的请求与客户端共享会话数据。 在Zend_Session组件中,“session data”代表存储在服务器端的$_SESSION数组中的数据。该数据使用Zend_Session来管理,由会话命名空间(Zend_Session_Namespace,该类为Zend_Session的一个子类)以对象的方式来控制。命名空间逻辑上就是一系列以字符串为键名的联合数组,这类似于普通的PHP数组。 15.2 Zend_Session基本用法 上一节对Zend_Session做了一个纯理论性的简介。本节将以具体的实例来讲解Zend_Session的基本用法。其中包括如何使用Zend_Session实现会话、如何对会话命名空间进行迭代以及如何对会话命名空间进行访问。 15.2.1 使用Zend_Session 本小节来介绍如何使用Zend_Session实现会话。要使用Zend_Session会话,应该需要以下几个步骤。 (1)引用命名空间(Zend_Session_Namespace)类。 (2)为命名空间类实例化一个对象。可以使用new关键字为类实例化对象,其中要使用参数命名空间。如果不指定参数,则类的构造函数会使用默认的命名空间参数,其值为Default。 (3)使用Zend_Session_Namespace类的实例的成员,可以对其进行赋值或者读取操作。 15.2.2 遍历会话命名空间 会话命名空间Zend_Session_Namespace支持foreach语句(通过循环遍历所有成员的PHP语句)。基于这一点,可以使用foreach语句对会话命名空间进行迭代,以遍历会话命名空间中的全部值。 15.2.3 访问会话命名空间 访问会话命名空间可以使用通常对于一般变量的方法,如直接为变量赋值、直接读取变量的值、使用isset()函数判断其是否为Null值、使用unset()来注销变量等。 15.3 Zend_Session高级用法 上一节介绍的是Zend_Session在会话处理方面的基本应用。本节继续介绍该组件的高级应用。其内容包括开启会话、锁定会话命名空间、会话过期、会话封装与控制器以及防止一个会话命名空间的多重实例等部分。本节就以上列出的这些内容逐一地作详细介绍。 15.3.1 开启会话 如果程序需要所有的请求都通过会话的形式来管理,那么则需要在程序最开始时就开启会话。要开启会话,可以使用Zend_Session的静态方法start()。该方法是Zend_Session类的静态方法,可以直接以Zend_Session::start()的方式使用,另外该方法也不需要任何参数。使用Zend_Session有两种正确的开启会话的方法。 1.使用Zend_Session::start()开启会话。 2.在需要会话的地方使用new Zend_Session_Namespace()。 15.3.2 锁定会话命名空间 为会话命名空间实例初始化对象并赋值之后,有时为了特定的需要,会锁定会话命名空间,以防止其他内容对其值进行更改。使用Zend_Session_Namespace的lock()方法可以锁定会话命名空间(即将其值改为只读状态);使用Zend_Session_Namespace的unLock()方法可以解除会话命名空间实例的锁定状态。 另外还可以通过Zend_Session_Namespace的isLocked()方法判断指定会话命名空间是否处于锁定状态。该方法将根据其状态返回相应的布尔值。 15.3.3 为会话设置生命期 每个会话都有其生命期,默认的会话在关闭页面时结束生命期。而通过Zend_Session_Namespace的setExpirationSeconds()方法与setExpirationHops()方法为每个会话设置生命期。两个方法的使用语法格式分别如下所示。 setExpirationSeconds($seconds,$variab

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档