版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PHP会话控制,后盾网 2012-2013 v2.0,后盾网 人人做后盾 ,HTTP特性,无状态 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快; 无状态性客户端与服务器端连接通信运行速度快,服务器应答也快。因为无状态,协议对事务处理是没有记忆性的是独立的。所以为了满足后面事务需要前面的事务有关信息,所以事务有关的信息要在协议外发送,COOKIE,Cookie 最早是网景公司的前雇员Lou Montulli在1993年3月发明。Cookie是当用户浏览某网站时
2、,服务器存储在用户机器上的一个小文本文件,再次来到该网站时,网站通过读取Cookie,得知用户的相关信息,就可以做出相应的动作; Cookie传递 Cookie是利用了网页代码中的HTTP头信息进行传递的,浏览器的每一次网页请求,都可以伴随Cookie传递。服务器将Cookie添加到网页的HTTP头信息中,伴随网页数据传回到用户的浏览器,浏览器会根据用户电脑中的Cookie设置选择是否保存这些数据。如果浏览器不允许Cookie保存,则关掉浏览器后,这些数据就消失;,COOKIE,生命周期 Cookie有一个Expires(有效期)属性,这个属性决定了Cookie的保存时间,服务器可以通过设定E
3、xpires字段的数值,来改变Cookie的保存时间如果不设置该属性,或设为0,那么Cookie只在浏览网页期间有效,关闭浏览器,这些Cookie自动消失,COOKIE,浏览器处理Cookie方式 数量各个浏览器中会不同,同一浏览器版本也不同IE8允许每个域保存50个cookieFirefox允许每个域保存50个cookie 大小:一般来说允许4Kb,不同浏览器,不同版本略有不同 当Cookie的数量达到上限时的删除方式1:将最近使用最少的Cookie删除2:随机删除,生成COOKIE,setcookie ( string name , string value , int expire ,
4、string path , string domain , bool secure ) name Cookie 的名字 value Cookie 的值 expire Cookie 过期的时间 path Cookie 在服务器端的有效路径 domain 该 cookie 有效的域名 secure 指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE 时,cookie 仅在安全的连接中被设置。默认值为 FALSE; 第七个参数设为true后,只能通过http访问,javascript无法访问,COOKIE数组或对象,操作数组 $_COOKIEa=111; $_COOKIEb
5、=222; $_COOKIE1=111; $_COOKIE2=666; 操作对象 通过序列化实现 serialize() string serialize ( mixed $value )产生一个可存储的值的表示 unserialize() mixed unserialize ( string $str , string $callback )从已存储的表示中创建 PHP 的值,SESSION,Session从用户访问页面开始,到断开与网站连接为止,形成一个会话的生命周期。在会话期间,分配客户唯一的一个SessionID,用来标识当前用户,与其他用户进行区分; Session会话时,Sessi
6、onID会分别保存在客户端和服务器端两个位置,对于客户端使用临时的Cookie保存(Cookie名称为PHPSESSID)或者通过URL字符串传递,服务器端也以文本文件形式保存在指定的Session目录中; Session通过ID接受每一个访问请求,从而识别当前用户、跟踪和保持用户具体资料,以及Session变量(在Session活动期间,可在Session中存储数字或文字资料),比如session_name等等,这些变量信息保存在服务器端,SESSION,session_start() 开始一个会话或者返回已经存在的会话,判断客户端有无session_id,如果没有,在服务器端写入SESSI
7、ON文件(或者通过数据库等完成)发送写session_id的cookie头信息。如果有客户端发来的session_id则找相应session数据 session使用方法 同get post等使用方法相同,$_SESSIONvar即可使用 更改session_id() session_regenerate_id() 更改成功则返回true,失败则返回false。更改session_id,但不改变当前session的其他信息 session_name() 返回当前session的name或改变当前session的name,SESSION传递方式,通过COOKIE传递 通过URL地址栏传递 定义普通
8、GET变量 定义session_name SID常量等于 isset($_COOKIEsession_name()?define(cc, ):define(cc, session_name().=.session_id() 隐藏表单域 设置php.ini中的session.use_trans_sid = 1或者编译时打开打开了-enable-trans-sid选项,让PHP自动跨页传递session id 如果在session_start();之前加代码session_id($sessionid);将不产生新的session文件,直接读取与这个id对应的session文件,清除SESSION,
9、unset($_SESSIONweb)/删除session变量 $_SESSION = array()/删除所有session变量, 不删除session文件 session_unset()/释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id session_destroy()/删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留 释放用户的 session 所有资源 session_unset() session_destroy(),配置文件设置SESSION环境,ses
10、sion_save_path 会话数据的路径。如果指定的路径,将数据保存到路径中; = PHPSESSID 用在cookie里的会话ID标识名,只能包含字母和数字,配置文件设置SESSION环境,session.use_cookies = On 是否使用cookie在客户端保存会话ID session.use_only_cookies = Off 是否仅仅使用cookie在客户端保存会话ID。PHP6的默认值为On session.cookie_lifetime = 0 传递会话ID的Cookie有效期(秒),0 表示仅在浏览器打开期间有效 session.cooki
11、e_path = / 传递会话ID的Cookie作用路径,配置文件设置SESSION环境,session.cookie_domain = 传递会话ID的Cookie作用域。默认为空表示根据cookie规范生成的主机名 session.cookie_secure = Off 是否仅通过安全连接(https)发送cookie session.cookie_httponly = Off 是否在cookie中添加httpOnly标志(仅允许HTTP协议访问),这将导致客户端脚本(JavaScript等)无法访问该cookie session.use_trans_sid = Off 是否使用明码在URL
12、中显示SID(会话ID)。默认是禁止的,因为它会给你的用户带来安全危险,配置文件设置SESSION环境,session.save_path = /tmp 传递给存储处理器的参数。你可以使用N;MODE;/path这样模式定义该路径(N是一个整数)。 N表示使用N层深度的子目录,而不是将所有数据文件都保存在一个目录下。MODE;可选,必须使用8进制数,默认600,表示文件的访问权限 = PHPSESSID 用在cookie里的会话ID标识名,只能包含字母和数字 session.auto_start = Off 在客户访问任何页面时都自动初始化会话,默认禁止。 因为类定义
13、必须在会话启动之前被载入,所以若打开这个选项,你就不能在会话中存放对象,配置文件设置SESSION环境,session.serialize_handler = php 用来序列化/解序列化数据的处理器,php是标准序列化/解序列化处理器。 session.gc_probability = 1 session.gc_divisor = 100 定义在每次初始化会话时,启动垃圾回收程序的概率。 这个收集概率计算公式如下:session.gc_probability/session.gc_divisor; 对会话页面访问越频繁,概率就应当越小。建议值为1/10005000,配置文件设置SESSION
14、环境,session.gc_maxlifetime = 1440 超过此参数所指的秒数后,保存的数据将被视为垃圾并由垃圾回收程序清理。 判断标准是最后访问数据的时间(对于FAT文件系统是最后刷新数据的时间)。 如果多个脚本共享同一个session.save_path目录但session.gc_maxlifetime不同, 那么将以所有session.gc_maxlifetime指令中的最小值为准。 如果使用多层子目录来存储数据文件,垃圾回收程序不会自动启动。 你必须使用一个你自己编写的shell脚本、cron项或者其他办法来执行垃圾搜集;,PHP垃圾回收机制,什么是垃圾 没有任何变量指向这个对
15、象时,即为垃圾。PHP会自动从内存中将其销毁,防止内存溢出。当一个PHP线程结束时,当前所有占用的内存都会被销毁 _destruct()析构函数,在垃圾对象被回收时执行 引用计数器 每个对象都包含一个引用计数器,每个引用连接对象时,计数器+1。当引用离开生存空间或设为NULL时,计数器减1。当某个对象计数器为0时,启动垃圾回收器,释放其所占用的空间,PHP垃圾回收机制,$a = 100; 在内容中开辟空间保存100。用PHP内部符号表的$a指向内存地址,方便依据符号操作内存; unset() 即断开符号表与内容地址的关系。将计数器-1; NULL 即直接将内容引用计数器清为0;,SESSION的垃圾回收机制,PHP的工作机制 它并没有一个daemon线程来定期的扫描Session信息并判断其是否失效,当一个有效的请求发生时,PHP 会根据全局变量 session.gc_probability和session.gc_divisor的值,来决定是否启用一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机动车检验机构资质认定评审补充技术要求试题(含答案)
- 抽水蓄能电站排水系统方案
- 市政管道施工测量方案
- 人防工程建设项目设计方案
- 旧房电路短路保护配置方案
- 加油站便利店施工方案
- 公司制度信息化管理方案
- 2026年机器人关节轴承寿命预测
- 2026江苏淮安市清江浦区柳树湾街道公益性岗位招聘备考题库及答案详解(夺冠)
- 2026广西玉林师范学院招聘第一批40人备考题库附答案详解(达标题)
- 2026年测自己性格测试题及答案
- 2026中国文创产品市场消费趋势与商业模式创新研究报告
- 带状疱疹临床路径完整版
- 北京2025年国家艺术基金管理中心招聘应届毕业生笔试历年参考题库附带答案详解(5卷)
- 《安全预评价提供基础资料清单》
- 铜砭刮痧的基础及临床应用
- (广东一模)2026年广东省高三高考模拟测试(一)政治试卷(含官方答案)
- CT扫描对比剂使用注意事项
- 2025年亚洲医疗投影仪市场发展报告
- 2026年初中生物实验操作规范竞赛试卷及答案
- GB/T 7582-2025声学听阈与年龄和性别关系的统计分布
评论
0/150
提交评论