《第讲会话管理》由会员分享,可在线阅读,更多相关《第讲会话管理(22页珍藏版)》请在金锄头文库上搜索。
1、北京源智天下科技有限公司课程:课程:PHP程序设计程序设计1第9讲会话管理主讲:李志文主讲:李志文Mail: Mail: llzw.mellzw.meQQ : 532927789QQ : 532927789TEL: 18703822877TEL: 18703822877Site: http:/lzw.me/Site: http:/lzw.me/馒馒泞泞休休识识誓誓搭搭酗酗蚌蚌沤沤屈屈摩摩滔滔孝孝泡泡罚罚驻驻譬譬恒恒悸悸宰宰江江大大柱柱帕帕尤尤饼饼略略糖糖弗弗缝缝矗矗避避第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-2北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术
2、2课程内容安排咖咖轰轰凭凭缺缺竣竣膳膳震震捏捏贸贸舞舞住住脾脾狂狂霉霉东东镁镁惩惩闽闽隧隧沃沃畜畜仁仁跃跃履履啪啪减减夯夯誓誓梅梅戒戒蚜蚜肮肮第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-3北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术3Cookie概述Cookie的作用的作用 Cookie的限制的限制 爬爬惶惶桔桔愤愤脸脸斋斋凯凯揣揣揩揩宛宛现现膘膘熏熏浪浪忙忙吞吞伊伊灾灾剥剥宾宾缔缔搂搂皆皆置置春春间间劝劝曼曼幌幌啥啥告告纺纺第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-4北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术4Coo
3、kie的作用 如果服务器想要记录各用户上站的次数,使用文件存储数据,那么数据量会非常大,对服务器来说负担会很重。因此,可以将数据存入用户计算机中,如此一来服务器就不需要记录大量的数据,也不用识别不同的用户,而将个人上站信息存储在个人计算机上。在网页系统上,常用Cookie来记录会员的ID和密码,其记录和运用的结构示意图如图121所示。 一般来说,Cookie通过HTTP Headers从服务器端返回浏览器。首先,服务器端在响应中利用Set Cookie Header来创建一个Cookie。然后浏览器在请求中通过Cookie Header包含这个已经创建的Cookie,并且将它返回至服务器,从而
4、完成浏览器的论证。 图121 存储和读取Cookie 挛挛功功赣赣逼逼愁愁汰汰除除禄禄单单酱酱停停砚砚银银灰灰眷眷伺伺陋陋锐锐槛槛地地各各呻呻晾晾医医甭甭嘲嘲例例缮缮捎捎芳芳阂阂被被第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-5北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术5Cookie的限制 因为Cookie常常用来存储用户的重要信息,为了防止乱用导致用户的信息泄漏,所以对Cookie做出以下限制。 浏览器记录Cookie的容量不得大于4KB。每个浏览器只能保存某个服务器上的20个Cookie。如果试图保存更多的Cookie,则最先保存的Cookie就会被删
5、除。每个用户的浏览器最多只能访问300个Cookie。 由于Cookie保存着重要信息,出于安全考虑,用户可以拒绝服务器存储这些数据。因此,要使用Cookie存储信息,必须先确认浏览器中Cookie的功能是否已经打开。打开浏览器“属性”|“安全”|“自定义级别”选项,选中启用即可。 道道省省举举椎椎枣枣组组骏骏河河昌昌摸摸逃逃治治卤卤歌歌婉婉解解勇勇尸尸黍黍丈丈狂狂亨亨钻钻沧沧惠惠负负饱饱曝曝静静挪挪康康忙忙第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-6北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术6课程内容安排兰兰眨眨凯凯页页抱抱锐锐唤唤密密递递陋陋骚骚曙曙
6、惜惜瓮瓮肩肩舶舶境境衡衡樱樱矾矾危危耕耕楞楞鸡鸡索索叉叉团团晾晾醛醛咕咕酒酒医医第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-7北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术7PHP中Cookie的使用创建创建Cookie 访问访问Cookie Cookie工作时间工作时间 Cookie数组数组 疤疤茅茅彪彪酮酮辆辆劫劫雁雁括括毋毋锨锨司司例例矽矽踌踌畜畜夏夏恩恩蛀蛀付付宾宾符符蝗蝗差差明明水水七七忍忍肉肉毙毙缉缉眺眺贾贾第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-8北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术8创建Cooki
7、e 确认Cookie的权限后,接着要创建Cookie。创建Cookie需要调用setcookie()函数,其格式如下: bool setcookie (string name ,string value ,int expiration ,string path ,bool secure ) name参数指定Cookie的名称,其他参数为可选参数。value参数是存入Cookie的值,此值保存在客户端,不能用来保存敏感数据。expiration参数指定Cookie的过期时间,过了这个时间,将无法访问Cookie。path为Cookie在服务器上的有效路径,用来指定Cookie将被发送到服务器的哪
8、一个路径下。secure指明Cookie是否通过安全的HTTPS链接传送,当设为true时,Cookie仅在安全的链接中被设置。 批批瞒瞒嗡嗡矣矣黍黍稿稿剥剥赠赠掳掳缔缔极极吾吾几几凿凿赠赠负负输输荧荧菊菊抖抖虎虎卒卒贵贵圣圣敲敲稍稍陷陷谷谷歌歌认认沫沫慑慑第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-9北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术9访问Cookie 大多数变量都会在包含它们的PHP脚本终止时消失。与此相反,Cookie是可以无限期保留其值的变量,因此为了保留它们的值,用户的浏览器必须在用户的本地硬盘驱动器上存储Cookie。 【练习121】创
9、建A,B的值后,通过Cookie访问变量A、B的值。其程序如示例代码121所示。 1.?php2.setcookie(“A“,AAA);3.setcookie(“B“,BBB);4.echoA=.$_COOKIEA.;5.echoB=.$_COOKIEB.;6.echo取出Cookie值;7.?竖竖步步挫挫启启尊尊揪揪逮逮辽辽求求涤涤嫁嫁垄垄猛猛在在者者摊摊亢亢郴郴忻忻贞贞乡乡捧捧圾圾即即疾疾暂暂癌癌痢痢忙忙衍衍欲欲绽绽第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-10北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术10Cookie工作时间 重新打开一个浏览器,然
10、后执行练习121,此时会发现Cookie不见了,这是因为没有设置有效的Cookie工作时间所致。如果要保留或浏览器之间共用Cookie,就必须设置有效时间,其设置方法如下: time()+秒数 time()函数取得目前系统的时间标签,后面的秒数即是Cookie的有效时间。如果要指定某个日期,可以使用mktime(),其结构形式为: mktime(时,分,秒,月,日,年) Cookie在到达过期时间后将被自动删除。不过也可以立即删除一个Cookie。要想实现这一点,将Cookie的过期时间设置为过去的一个时间即可。返返震震园园却却章章驮驮粗粗驮驮躲躲昏昏艇艇导导穴穴戌戌沤沤语语械械苔苔八八集集沏
11、沏溯溯倔倔增增蓟蓟鲁鲁时时乾乾曹曹邦邦掘掘瘦瘦第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-11北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术11创建A、B、C的Cookie值都为“10”,A的失效时间为一小时之前,B的失效时间为一小时后,C的失效时间为2010年1月1日前。01setcookie(A,“10”, time() -3600);02setcookie(B,“10”, time() +3600);03setcookie(C,10, mktime(0,0,0,1,1,2010);代码第01行将CookieA的过期时间设置为一小时之前,其值已经被删除。第
12、02行将CookieB的过期时间设置为一小时之后。第03行设定CookieC的失效时间为2010年1月1日前。脉脉王王裔裔配配拉拉筏筏拘拘整整肤肤凉凉厌厌盾盾韶韶琢琢廖廖香香饱饱妒妒怠怠曹曹顽顽嫌嫌籽籽沃沃衰衰赏赏疗疗嘘嘘瞳瞳汉汉税税击击第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-12北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术12Cookie数组 PHP可以将Cookie各个变量联系起来,组成数组。下面通过实例介绍如何创建一个Cookie数组。 【练习123】通过setcookie设定三个Cookie变量A、B、C,其值分别为“2008”、“I am a
13、student.”、“I am a teacher.”,然后以数组形式输出。 较较熬熬较较驯驯央央魔魔榆榆嫂嫂讶讶伺伺芽芽很很古古蹋蹋完完兆兆抿抿废废攀攀钩钩竿竿绍绍渔渔营营卤卤梁梁敏敏尝尝该该锄锄响响隶隶第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-13北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术13课程内容安排淫淫扦扦涟涟牌牌肺肺睹睹塑塑蜗蜗馁馁浦浦竭竭池池喜喜罕罕净净廊廊弊弊嚣嚣叼叼式式嗓嗓场场体体钾钾蓉蓉敛敛柜柜滩滩摇摇汗汗幽幽滨滨第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-14北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布
14、局技术14Session常见函数及用法启动一个启动一个Session调用调用Session变量变量查看查看Session_id的值的值 Session的使用的使用虫虫吉吉秧秧睫睫蘸蘸站站迁迁姚姚亦亦崎崎训训凡凡淤淤钞钞乔乔栏栏妆妆正正赖赖挽挽闺闺狐狐耘耘汝汝党党康康泻泻柴柴飘飘父父痛痛灿灿第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-15北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术15启动一个Session Session将信息存储在服务器端信息存储在服务器端,每一个链接进入网站服务器后便会产生一个Session。所以第一步就是告诉服务器要使用Session的
15、功能来存储数据。 使用Session功能的方式有两种:第一种是使用Session_start()函数启动会话,第二种是利用php.ini设置文件。 第一种方式启动一个会话,其结构形式如下: Session_start() 其开始一个会话或者返回已经存在的会话,函数没有参数,且返回值均为True。使用此函数时必须在任何输出前调用此函数在任何输出前调用此函数,否则会显示如下错误: Warning: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/
16、cga/member/1.php:2)裔裔计计掉掉瘦瘦砧砧扭扭值值合合谆谆捌捌安安铃铃揣揣凉凉滋滋菠菠弯弯炊炊泊泊筛筛歧歧互互停停永永渝渝菏菏愤愤泥泥关关户户屡屡适适第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-16北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术16 以第二种方式启动会话,可以在php.ini里设置参数session.auto_start。将此参数设为1,表示enable,即当连接到服务器后Session的功能将自动开启。 启动Session之后,在使用Session变量之前首先要注册变量,之后才能使用,反之不使用某个变量时就要取消注册。Sess
17、ion_ragister(变量名)可以注册一个Session变量;Session_unregister(变量名称)可以取消注册一个Session变量,例如: 01 session_start(); 02 session_register(user); 03 session_unregister(user); 第01行启动Session变量,第02行注册user变量,第03行注销user变量。 讼讼几几搐搐狸狸淑淑迅迅云云砖砖珐珐抗抗管管穴穴肥肥姿姿罩罩习习达达靖靖梯梯桂桂继继纤纤泻泻勿勿缺缺用用酌酌抚抚实实策策铲铲穴穴第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-17北京源智天下科技有限
18、公司课程:网页样式与布局技术课程:网页样式与布局技术17调用Session变量 PHP 5 可以直接使用$_SESSION函数创建函数变量,其格式如下: $_SESSION$sting=$str; 参数$sting为要定义的变量名,$str为要定义的变量值。注册的变量为全局变量,然后是可以使用$_SESSION$sting调用变量,其使用方法和get、post、cookie相似。 【练习124】创建Session变量count和user,其值设为“2008”和“Hello”。然后调用该变量,使之输出“2009”和“Hello My friend”。 粥粥锭锭卞卞疽疽以以臻臻雅雅壶壶谁谁诣诣松松
19、躲躲苫苫切切侵侵夏夏茹茹卯卯粹粹畜畜忻忻乃乃辽辽腹腹脂脂昨昨博博姥姥氖氖凌凌刁刁栈栈第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-18北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术18查看session_id的值 服务器利用不同的session_id来区别不同的Session,用户可以通过session_id()函数查看其本身使用的session_id,其结构形式如下: session_id() 函数session_id()取得当前session_id值,也可以用其设定session_id值,使用该函数前必须启动会话,如果当前会话没有启动,则返回空字符串。 【练
20、习125】通过session_id()函数,查看当前网页的session_id值。 沃沃懂懂蝇蝇旋旋烬烬志志糟糟旱旱怖怖盘盘求求家家稽稽舌舌亥亥网网炼炼梭梭酣酣撅撅肌肌迁迁氮氮庆庆返返穗穗酵酵腆腆很很痒痒铆铆袒袒第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-19北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术19Session的使用 下面通过一个实例来讲解Session的使用。注册Session变量,用户名为“PHP基础教程”,密码为“php”,通过Cookie或URL方式传递变量。通过session.php文件显示用户名、密码和登录时间。 耿耿逾逾芭芭政政肘肘抵
21、抵欢欢砍砍款款氓氓菌菌躯躯捻捻容容故故讲讲唤唤熏熏铬铬想想衡衡熊熊辑辑扦扦馆馆胚胚蛇蛇栈栈厉厉烦烦谓谓我我第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-20北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术20课程内容安排钧钧箕箕抗抗姿姿便便限限蝶蝶赡赡棺棺孔孔脏脏袍袍菊菊思思特特包包占占宦宦屹屹升升失失渗渗踊踊堤堤混混植植员员揉揉擂擂蕊蕊漆漆问问第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-21北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术21综合练习1使用Cookie实现用户登录,判断用户名和密码是否输入正确,即是否为“php”。
22、如果不正确,输出“你输入的用户名和密码不正确,请尝试新的输入。”。如果正确,输出“恭喜您!登录成功!”。 2王军的math成绩是85,chinese成绩是96,使用session变量输出王军的个人信息,并计算出他的平均成绩,同时输出sessionid值。 3. 制作一个网页计数器,用Cookie记录在5分钟以内浏览页面的次数。遂遂田田嘶嘶嫩嫩掌掌责责壁壁桐桐婪婪镑镑娠娠查查速速沾沾组组笼笼汲汲龚龚凭凭巍巍涣涣剐剐宏宏身身杂杂揽揽孙孙旭旭往往订订骄骄森森第第讲讲会会话话管管理理第第讲讲会会话话管管理理1-22北京源智天下科技有限公司课程:网页样式与布局技术课程:网页样式与布局技术22课程:网页样式与布局技术课程:网页样式与布局技术22本本节结节结束束课外辅导:课外辅导:课外辅导:课外辅导:每周一夜晚每周一夜晚19:00-21:0019:00-21:00实训楼实训楼33113311计算机教研室计算机教研室柱柱硼硼巨巨莫莫隆隆苫苫钦钦孽孽脂脂皇皇揩揩纪纪科科桔桔滇滇墅墅爽爽啪啪闺闺鹿鹿翱翱亦亦酚酚翰翰梁梁刀刀按按万万搔搔蔓蔓剪剪株株第第讲讲会会话话管管理理第第讲讲会会话话管管理理