免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1551 | 回复: 1
打印 上一主题 下一主题

第九堂课 cookie与会话控制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 03:38 |只看该作者 |倒序浏览
第9堂课    cookie与会话控制


session

cookie和session是数据的临时档案馆,cookie将数据存储在客户端,实现数据持久存储,session将数据存储在服务器端,保证数据在程序的单次访问中持续有效。有了cookie和session就可以解决httpweb协议的无状态问题,实现数据在不同页面之间的传递和数据在客户端的持久存储。

session==会话

在计算机专业属语中,session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经历的时间。


创建会话: 启动会话,注册会话,使用会话,删除会话

php启动会话有两种方式:
1.是使用session_start()函数
session_start() 使用这个函数前,浏览器不能有任何输出,
2.使用session_register()函数为会话登录一个变量来隐含地启动会话,
使用session_register(string name) name是指变量的名称。使用这个函数,要将php.ini文件中的register_globals选项设置成on


注册会话:会话变量被启动后,全部保存在数组$_SESSION中,通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可。

使用会话

删除会话:
删除单个会话,删除会话变量的方法同删除数组中指定元素相同,都可以通过unset()函数完成,unset($_SESSION['user'])。
如果通过unset()函数一次注销整个数组(unset($_SESSION))那么会禁止整个会话功能。而且没有办法恢复,用户也不能在注册$_SESSION变量。

所以,要是删除多个会话,或注销所有的会话变量,使用以下两种方式:
1.删除多个会话:将一个空的数组赋值给$_SESSION,如$_SESSION=array()
2.结束当前会话,:如果整个会话结束,就可以使用session_destroy()函数结束当前的会话,语法session_destroy(), 这样就清空会话中的所有资源,撤底销毁session


配置php会话:

在客户端支持cookie的前提下,控制session的生命周期:一是通过session来完成,别一个种是通过cookie来完成

基于session的生命周期:有两种方法,一是应用session_set_cookie_params()函数,二是应用setcookie()函数。

session_set_Cookie_params() 该函数的功能是设置session和cookie的参数,其语法如下:session_set_cookie_params(cookie的生存期,[cookie的有效路径[cookie的效城[cookie在安全的范围内被发送]]])

session_set_Cookie_params()函数必须在session_start()函数之前调用。

setCookie()函数的主要职责是创建cookie。但同样可以控制session的过期时间。 

以上都是在客户端支持cookie的前提下,控制session的生命周期,一旦客户端禁止cookie,那么session变量就不能够在页面间传递,解决办法4种:
1.通知客户打开cookie
2.php.ini文件中session_use_trans_sid=1或者编译时打开-enables-trans-sid选项,让php自动跨页面传递session_id
3.以GET或post方式,通过表单元素传递SESSION_ID
4.通过文件或者数据库传递SESSION_ID


会话的高级应用

如果将session保存在,session的临时文件,或数据库,需要使用php中的session_save_path()函数,他是用来取的或者重新配置当前session的存储路径。 session_save_path([string path]) path参数表示重新设置session的存储路径,如果不设置参数,表示直接获取当前的session的存储路径。


session缓存 : 是指将网页中的内容临时存储到客户端ie的文件夹下。

1.缓存函数session_cache_limiter([设置缓存的方式])
2.缓存时间函数session_cache_expire([设置session的过期时间])   单位分钟,默认过期时间180分钟

  还有这两个函数必须在session_start()函数前使用。

session数据库存储,将session_ID存储于数据库中操作:

session_set_save_handler() 参数有:找到存储路径,关闭数据库,读取session键值,key对应session_id,和对应的变量,注销session对应的session键值,清除过期session记录。



cookie

cookie是一种在远程客户端存储数据并以此来跟踪和识别用户的机制,简单说就是web服务器暂时存储在用户硬盘上的一个文本文件,并随后被web浏览器读取。当在次访问web网站时,网站通过读取cookie文件记录这位访客的特定信息,从而作出响应。例如,不用输入用户名密码就可以登陆等。。这种文件的格式:用户名@网站地址[数字]。txt

创建cookie应用的是setcookie()函数,由于cookie是http头标的组成部分,作为头标必须在页面其他内容之前发送,也必须最先输出,所以setcookie()函数之前不能有任何内容输出。

setcookie(名称[值,过期时间,cookie在服务器的路径,有效域名,是否指向安全https])



访问cookie  在php中应用全局数组$_cookie[]读取客户端cookie的值,$_cookie是经由http cooies方法提交至脚本的变量。

删除cookie   有两种方法:1.使用setcookie()函数,另一种就是在客户端手动删除  
setcookie()删除cookie只需将第二个参数设置成空,将第3个参数过期时间设置小于系统时间就可以。例:setCookie("mr","",time()-1);





复习:

1.什么是session和cookie,他的作用是什么,他们有什么区别
2.session怎么使用:启动会话,注册会话,使用会话,删除会话
3.session的生命周期的设置
4.session的高级应用,如存储在数据库,和缓存的应用。
5.cookie的使用,创建,访问,删除

论坛徽章:
105
狮子座
日期:2013-08-15 09:47:21处女座
日期:2013-10-09 10:04:27射手座
日期:2014-07-18 17:24:58处女座
日期:2014-07-24 09:29:49天秤座
日期:2014-07-24 09:30:06白羊座
日期:2014-07-24 15:26:28双子座
日期:2014-11-12 10:13:312015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之澳大利亚
日期:2015-05-11 09:56:392015年亚洲杯之巴勒斯坦
日期:2015-05-11 09:59:282015年亚洲杯之韩国
日期:2015-05-11 10:16:082015亚冠之水原三星
日期:2015-05-13 09:50:46
2 [报告]
发表于 2011-12-23 15:20 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP