编辑:sx_zhangjh
2014-11-04
最新PHPSession处理及应用实例
精品学习网为大家整理了PHPSession处理及应用实例,希望对大家有所帮助。
传统的C/S系统中客户和服务器之间的协议是有状态的,其优点在于通过存储状态信息减少网络上的信息传输以提高效率。HTTP(超文本协议) 是一种无状态的协议,客户与服务器建立连接,服务器响应客户端的请求并把请求结果传送回客户端之后,这个连接也就断开了。由于网络上并不存在客户和服务器之间的持续连接,因此服务器通常总处在一种状态,服务器没有状态信息来识别同一客户发出的不同请求,也就是说客户的请求是独立的。对Web客户的反应不依赖于以前请求和反应消息的历史,这种无状态的协议只适合做简单的查询。在B/S程序设计中,为了完成特定的应用逻辑,常常需要保存用户的信息和业务的运行状态,这个要求HTTP无法做到。
为了解决这个问题,就需要程序员将用户识别和业务状态信息保存在复杂的URL和查询字符串中,或者使用Form的隐藏域(Hidden),或者使用Cookie将信息存放在Header 中来实现。使用这些方法虽然能够满足业务要求,但不利之处也很明显,它加大了网络的数据传输量 (笔者就遇到了要保存50~70项数据的情况);如果使用Cookie又受到客户浏览器是否支持Cookie 的限制;另外增加了程序开发的复杂度和工作量,程序编制显得非常不流畅。 Session就是用户一次会话的过程,当一个用户访问了网站后,用户的一次会话(Session)就开始了,在用户离开该网站时这次会话结束。SessionID 用来标识这次会话,它是由PHP随机生成并又用随机种子字串进行mds加密过了的唯一的32位 ID号,能够将所有的会话区分出来。在会话过程中,可以使用PHP函数sessfon-- register()注册Session变量,这些Session变量可以保存文本或数值信息。
注册一个Session变量后即可在随后的页面中使用它。Session变量是全局变量,在整个会话期内有效,随着会话的结束,Ses- sion变量也就消失了。服务器将SessionID随Web页一起传送到客户端,如果客户端浏览器支持Cookie的话,将使用 Cookie来保存SessionID。当用户的浏览器向服务器发送请求时会把SessionID放到header中,随同页面一起提交到服务器。这里的Cookie确切地说应称为SessionCookie。在服务器端,当PHP配置文件中,session--au- t见start=l或调用函数session_start()之后,PHP 将自动检查每个到达服务器的请求是否都含有 SessionID。
如果含有SessionID,就将这个Session ID先前保存的环境(例如Session的变量内容)重新构造、恢复,这时就可以使用先前保存的Session 变量了;如果请求页面中没有SessionID,PHP认为这次请求开始了一个新的会话过程,于是产生一个新的SessionID来标识这次会话。
以上就是PHPSession处理及应用实例,谢谢查阅。
标签:PHP论文
精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。