阿里云新用户优惠

第十一章 PHP会话控制

一、会话控制简述 会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为。例如,当我们登录某个邮箱系统以后,可以在其中完成查看邮件、收信、发信等操作,这些操作有可能需要访问多个页面来完成。 在同一个系统上,多个页面之间互相切换时,还能保持用户的登录状态,并且访问的都是用户自己的信息。这种能够在网站中跟踪一个用户,并且可以处理在同一个网站中同一个用户在多个页面共享数据的机制,都需要使用会话控制的思想完成。 1、为什么要使用会话控制 我们在浏览网页时,访问每一个 Web 页面都需要使用到“HTTP 协议”,而 HTTP 协议是无状态协议,也就是说 HTTP 协议没有一个内建机制来维护两个事务之间的状态。当一个用户请求一个页面以后,再请求同一个网站上的另外一个页面时,HTTP 协议不能告诉我们这两个请求是来自同一个用户,会被当做独立的请求,而并不会将这两次访问联系在一起。 2、会话控制的方式 由于 HTTP 是无状态的协议,所以不能维护两个事务之间的状态。PHP 系统为了防止这种情况的发生,提供了如下三种网页之间传递数据的方法。 使用超链接或者 header() 函数,并在 URL 的 GET 请求中附加参数的形式,将数据从一个页面转向另一个 PHP 脚本中。也可以通过网页中的各种隐藏表单来储存使用者的资料,并将这些信息在提交表单时传递给服务器中的 PHP 脚本; 使用 Cookie 将用户的状态信息存放在浏览器中,并通过浏览器来存取 Cookie 中的信息; 相对于 Cookie 还可以使用 Session,将访问者的状态信息存放于服务器之中,让其他程序能透过服务器中的文件或数据库,来存取使用者的信息。 二、Cookie会话技术 Cookie 是在 HTTP 协议下,服务器或脚本用来维护客户端上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。 有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除。 1、Cookie 的主要用途 服务器可以利用 Cookie 包含信息的任意性来筛选并维护这些信息,以判断 HTTP 传输中的状态。Cookie 最典型的应用是判定注册用户是否已经登录网站,同时用户可能也会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookie 的功用。 另一个重要应用场合就是商城类网站的“购物车”功能。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookie,以便在最后付款时提取信息。 2、Cookie 的生命周期 Cookie 可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,如果手动删除 Cookie 就需要重新登陆了)。而还有一些 Cookie 在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。

阅读更多...