文档库 最新最全的文档下载
当前位置:文档库 › 6---PHP会话控制

6---PHP会话控制

PHP会话控制技术

会话控制的概念:

简单地说会话控制就是跟踪和识别用户信息的机制。会话控制的思想就是能够在网站中跟踪一个变量,通过这个变量,系统能识别出相应的用户信息,根据这个用户信息可以得知用户权限,从而展示给用户适合于其相应权限的页面内容。目前最主要的会话跟踪方式有cookie,session。

Cookie的概念:

cookie是一种在远程浏览器端存储数据并以此数据来跟踪和识别用户的机制。

cookie可以简单地理解为是用户访问某个网站,web服务器暂时存储在用户硬盘上的一个文本文件,当用户再次访问该网站,浏览器会通过读取客户端cookie文件记录来查看访客的特定信息,从而迅速做出响应,比如在页面中可以不需要输入用户名和密码就直接登录网站等等。当然这么理解的前提是不考虑会话cookie,因为会话cookie不将用户信息储存在硬盘上,而是仅仅存储在内存中,当当前页面关闭而随之消亡。

cookie常常被用于三个方面:

1.记录用户访问的部分信息:比如用户访问该页面的次数,上次访问的时间,上次登录的用户名等。

2.在页面间传递变量:当一个页面声明了一个变量,并赋值后,一旦该页面关闭,则该变量的值也随之消失,如果需要该变量传值到下一个页面,可以通过表单、url地址传值外,还可以通过cookie传递。

3.将所查看的internet页存储在cookies临时文件夹中,可以提高以后的浏览速度。

创建cookie:

setcookie(string cookiename,string value,int expire);

1.cookiename是需要设置的cookie的名字,将来需要调用时可以通过$_COOKIE[cookiename]来获取其中的值.

2.expire为cookie的失效时间,是标准的UNIX时间标记,如果不设置失效时间,那么cookie 的生命周期就是浏览器会话期间,一旦这个页面关闭了,相应的cookie也就自动消失。这种cookie就是会话cookie,它不会被保存在硬盘上,而是只保存于内存中。

例如:setcookie('visitcount',$count,time()+60);

有效时间一般是当前时间戳加需要延长的时间秒数。本例意思是名字是visitcount的cookie的有效时间为60秒。当前时间戳可以通过time()/mktime()来获取。

特别备注:cookie是HTTP文标的组成部分,而头标必须在页面任何内容发送之前发送,也就是说必须最先输出,即便是在setcookie()前输出了一个html标记或者echo语句都不可以,甚至连一个空行都导致程序错误。

读取cookie:

通过超级全局数组$_COOKIE来读取浏览器端的cookie的值。

例如:欢迎您第次访问本页面。

删除cookie:有两种方法:

1.手工删除方法:右击浏览器属性,可以看到删除cookies,执行操作即可将所有cookie

文件删除。

2.setcookie()方法:跟设置cookie的方法一样,不过此时讲cookie的值设置为空,有效时间为0或小于当前时间戳。

例如:setcookie('visittime','',0);

setcookie('visittime','',time()-1);

cookie的生命周期:

1.没有设置有效期的cookie:没有设置有效期的cookie也就是会话cookie,该cookie 不会被保存成硬盘中的txt文件,而是保存在内存中,一旦当前浏览器窗口关闭,则cookie 自动消失,也就是该cookie的生命周期结束。

2.设置了有效期的cookie:设置了有效期的cookie会保存到硬盘COOKIES目录下的txt 文件中。只有当到期或者手工删除才会消亡。

3.虽然cookie可以长期保存在客户端浏览器中,但浏览器允许存储最多300个cookie文件,而且每个cookie文件的最大容量为4kb;此外每个域名也最多支持保存20个cookie,如果达到了限制,那么浏览器会自动随机删除cookies。

cookie的综合应用:带学生们写一个网页访问计数器的例子

Session的概念:

session在web开发中具有非常重要的份量。它可以将用户正确登录后的信息记录到服务器的内存中,当用户以此身份访问网站的管理后台时,无需再次登录即可得到身份确认。而没有正确登录的用户则不分配session空间,即便输入了管理后台的访问地址也不能看到页面内容。通过session确定了用户对页面的操作权限。

Session的使用步骤:

1.启动session:使用session_start()函数来启动。

2.注册会话:直接给$_SESSION数组添加元素即可。

3.使用会话:判断session是否为空或者是否已经注册,如果已经存在则像普通数组使用即可。

4.删除会话:

A.可以使用unset删除单个session.

B.使用$_SESSION=array()的方式,一次注销所有的会话变量.

C.使用session_destroy()函数来彻底销毁session.

Session的综合应用:

当用户登录成功后,必须应用Session技术来跟踪登录信息。此外需要同时将验证码图片生成进行复习。因为验证码图片生成过程中利用到了Session技术的跨页面传值的特性。

Session和Cookie的区别:

cookie是保存在客户端机器的,对于未设置过期时间的cookie,cookie值会保存在机器的内存中,只要关闭浏览器则cookie自动消失。如果设置了cookie的过期时间,那么浏览器会把cookie以文本文件的形式保存到硬盘中,当再次打开浏览器时cookie值依然有效。session是把用户需要存储的信息保存在服务器端。每个用户的session信息就像是键值对一样存储在服务器端,其中的键就是sessionid,而值就是用户需要存储信息。服务器就是

通过sessionid来区分存储的session信息是哪个用户的。

Session和Cookie两者最大的区别就是session存储在服务器端,而cookie是在客户端。session安全性更高,而cookie安全性弱。

相关文档