网页编程语言学习第8章.ppt
《网页编程语言学习第8章.ppt》由会员分享,可在线阅读,更多相关《网页编程语言学习第8章.ppt(33页珍藏版)》请在三一办公上搜索。
1、会 话,吉林省三扬科技咨询有限公司,课程内容,课程内容会话管理的解决方案Session与Cookie方案一使用Session方案二使用Cookie购物车系统,吉林省三扬科技咨询有限公司,会话管理的解决方案Session与Cookie,在Web服务器端编程中,会话状态管理是一个很重要的方面。我们知道HTTP是一种无状态(Stateless)的协议,它无法区分当前的一连串请求是来自相同的客户端还是不同的客户端,或者客户端是处于连接状态还是断开状态。正是由于HTTP协议的无状态特点,因此而带来了一系列的问题,比如在某段时间内有许多用户登录网上银行帐号,它们各自进行着买卖基金、转帐、查询余额等不同的业
2、务,如果服务器不能记住用户的身份,就可能出现刚买的基金存进了其它人的帐号、转帐失误等许多未知的后果。再如通过在线商店购物时,由于服务器不能记住以前的事务,当我们把商品加入购物车时,服务器不知道购物车里原先有些什么,不能记住客户都买了什么商品,因此购物车的功能将无法实现。,吉林省三扬科技咨询有限公司,会话管理的解决方案Session与Cookie,那么如何才能实现会话状态呢?在PHP中,通常有以下两种解决方案:Session:中文翻译为“会话”,指用户访问网页到与服务器断开连接的一个时间段。Session的功能是跟踪用户状态,存储整个会话过程中保持其状态的信息。Cookie:Cookie是一个小
3、文本文件,该文件里面记录了会话信息并存储在客户端。,吉林省三扬科技咨询有限公司,方案一使用Session,Session简介Session的创建与销毁Session的配置与应用Session中的存取对象与应用数组Session的共享与安全提高Session的效率,吉林省三扬科技咨询有限公司,Session简介,Session是什么呢?通常在中文里翻译为“会话”。由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态。所以我们必须通过Session来记录用户的有关信息,以供用户再次以此身份对Web服务器提供要求时作确认。Session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。
4、每一访问者都会单独获得一个Session。在Web应用程序中,当一个用户访问该应用时,Session类型的变量可以供这个用户在该Web应用的所有页面中共享数据;如果另一个用户也同时访问该Web应用,他也拥有自己的 Session变量,两个用户之间无法通过Session变量共享信息。,吉林省三扬科技咨询有限公司,Session简介,在PHP中,Session由一种能够存储用户发出的请求状态信息的方法组成。当用户每次访问网站时,都会为每个访问者创建一个唯一的标识符来区分客户的身份,这个标识符被称为会话ID(SID)。其实SID就是Session 文件的文件名,具有唯一性和随机性,以确保Sessio
5、n 的安全。若客户端未禁用Cookie,SID存储在Cookie(称为会话Cookie)中,否则使用URL来传递SID。,吉林省三扬科技咨询有限公司,Session的创建与销毁,在PHP5中,使用session_start()函数来创建一个会话状态,同时意味着会话的开始,session_start()函数的语法格式:如果拥有会话ID,session_start()函数将会继续当前会话,否则创建一个新会话,并为用户会话分配一个会话ID。开始一个会话之后,可使用PHP5的超级全局变量数组$_SESSION来存储和取回Session中的变量。,吉林省三扬科技咨询有限公司,Session的创建与销毁,
6、尽管断开与服务器的连接或者时间过期可自动销毁会话,但是有时是需要手工来销毁会话的,此时可使用session_unset()或session_destroy()函数。其中session_unset()函数的语法格式:session_unset()函数用于释放指定的Session变量,它不会完全删除会话,用法:session_destroy()函数会完全删除当前会话,它的语法格式:使用session_destroy()函数以后,当前会话将会失效,用法:,吉林省三扬科技咨询有限公司,Session的配置与应用,在使用会话时,大部分控制都是由PHP的配置文件来完成的。PHP5共提供了25个会话配置指令
7、负责会话处理功能,其中重要的23个有:1session.save_handler:该指令定义了存储和获取与会话相关联数据的处理器的名称,它可接受的参数有4个,分别为:files:文件,默认值为files。mm:共享内存。sqlite:SQLite数据库。user:用户自定义函数。2session.save_path;该指令定义了传递给存储处理器的参数,如果处理器名为 files,则参数值为创建文件的路径。session.save_path指令的默认值为“/tmp”。在php.ini文件中,session.save_path指令还可以使用这种形式:session.save_path=N;/pat
8、h可选参数 N用来决定会话文件分布的目录深度,其值为一个整数。需要注意的一点是要使用参数N,必须先创建好这些目录。,吉林省三扬科技咨询有限公司,Session的配置与应用,3session.use_cookies:该指令用来决定是否在客户端使用 cookie 来存放会话 ID,它接受两个值,分别为:1:表示启用,默认值为1。0:表示禁用。4session.use_only_cookies:会话ID与某个用户相关联可通过两种途径,一种是使用Cookie,另一种使用URL传递。session.use_only_cookies指令用来决定是否在客户端只使用Cookie来存放会话 ID,而放弃使用UR
9、L传递。session.use_only_cookies指令接受两个值,分别为:1:表示只使用Cookie,默认值为1。0:表示同时使用Cookie和URL传递。当session.use_only_cookies指令的值设置成1时,可防止有关通过 URL 传递会话 ID 的攻击。,吉林省三扬科技咨询有限公司,Session的配置与应用,5session.name:该指令用于指定发送到客户端的会话Cookie名,默认值为PHPSESSID。6session.auto_start:该指令用于指定是否在请求开始时自动启动一个会话,它接受两个值,分别为:1:表示在请求开始时自动启动一个会话。0:不会自
10、动启动一个会话,需要用session_start()函数显式的启动,默认值为0。7session.cookie_lifetime:该指令指定了发送到浏览器的会话Cookie的生命周期,单位为秒,默认值是0。当值是0时,表示会话Cookie的生命周期直到浏览器被用户关闭为止。8session.cookie_path:该指令指定了会话 cookie 的有效路径,默认值为“/”。当值是“/”表示Cookie对当前网站下的所有路径都是有效的,若值为“/item”,则表示会话cookie只在网站下的item路径中才是有效的。,吉林省三扬科技咨询有限公司,Session的配置与应用,9session.co
11、okie_domain:该指令指定了会话Cookie的有效域,默认值为空。使用这个指令可防止别的域非法读取自己的会话Cookie,以增强Cookie的安全性。若session.cookie_domain指令的值为空,表示将根据 Cookie规范生成Cookie的主机名。10session.cookie_secure:该指令决定是否仅使用安全连接(https)来发送Cookie,默认值为off。11session.serialize_handler:该指令定义了序列化和逆序列化的处理器名,默认值为php(php是标准序列化和逆序列化处理器)。此外,PHP若启用了WDDX(Web开发数据交换)支持
12、,还可使用wddx处理器。12session.gc_probability和session.gc_divisor:session.gc_probability指令和session.gc_divisor指令合起来定义在每次初始化会话时,启动垃圾回收程序的概率。其中session.gc_probability指令作为分子部分,默认值为1。session.gc_divisor指令作为分母部分,默认值为100。,吉林省三扬科技咨询有限公司,Session的配置与应用,13session.gc_maxlifetime:该指令指定了过多长时间数据被视为“垃圾”并由垃圾回收程序清理,单位为秒,默认值是144
13、0。它的判断依据是最后访问数据的时间,对于FAT文件系统则是最后修改数据的时间。如果多个脚本共享同一个session.save_path目录,将以所有session.gc_maxlifetime指令中的最小值为准。14session.referer_check:该指令用来验证HTTP Referer中是否包含指定的字符串,如果包含则会话ID被视为有效,若不包含则会话ID将视为无效。它的默认值为空,表示全部视为有效。15session.bug_compat_42和session.bug_compat以及之前的的版本有一个未注明的特性或者BUG,它允许用户在 register_globals 被禁
14、用的情况下也可以初始化全局Session变量,如果在PHP4.3以及更新版本中使用这个特性,并且同时开启了session.bug_compat_42和session.bug_compat_warn指令会显示警告信息。session.bug_compat_42和session.bug_compat_warn的默认值都为1,表示开启。,吉林省三扬科技咨询有限公司,Session的配置与应用,16session.entropy_file:该指令来指向提供一个外部资源(文件),该资源(文件)会集成到会话ID的生成过程中。session.entropy_file指令的默认值为空。17session.en
15、tropy_length:该指令指定了从外部资源(文件)读取的字节数。默认值为0,表示禁用。18session.cache_limiter:该指令指定了会话页面所使用的缓冲控制模式,以此决定客户端和中间代理如何缓存页面内容。它接受五个值,分别为:nocache:表示无缓存,禁止客户端和中间代理缓存页面。默认值为nocache。none:阻止在HTTP头中发送禁用缓存的命令。public:客户端和中间代理都可缓存页面private:客户端可缓存页面,中间代理禁止缓存页面。private_no_expire:在private模式下,一些浏览器不能正确处理expire 头,使用private_no_
16、expire就可以解决这个问题。在private_no_expire模式下,expire头将不会往客户端发送。,吉林省三扬科技咨询有限公司,Session的配置与应用,19session.cache_expire:该指令指定了会话页面在客户端cache中的有效时间,单位是分钟,默认值为180。当缓存模式为nocache时,此指令无效。20session.use_trans_sid:该指令确定在URL中传递会话ID时是否使用明码显示,默认值为0,表示禁止使用。设置成1,表示允许使用。21session.hash_function:该指令指定了生成会话ID的散列算法,它接受两个值:1:代表使用SH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网页 编程 语言 学习

链接地址:https://www.31ppt.com/p-6017030.html