PHP编程基础与实例教程第二版课件11

上传人:宝路 文档编号:52918376 上传时间:2018-08-26 格式:PPT 页数:58 大小:2.26MB
返回 下载 相关 举报
PHP编程基础与实例教程第二版课件11_第1页
第1页 / 共58页
PHP编程基础与实例教程第二版课件11_第2页
第2页 / 共58页
PHP编程基础与实例教程第二版课件11_第3页
第3页 / 共58页
PHP编程基础与实例教程第二版课件11_第4页
第4页 / 共58页
PHP编程基础与实例教程第二版课件11_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《PHP编程基础与实例教程第二版课件11》由会员分享,可在线阅读,更多相关《PHP编程基础与实例教程第二版课件11(58页珍藏版)》请在金锄头文库上搜索。

1、PHP编程基础与实例教程第二版 PHP Fundamentals & Practices2nd Edition,第 11 章 PHP会话控制,主讲:孔祥盛,本章大纲,11-1 HTTP无状态特性 11-2 页面间的参数传递 11-3 Cookie会话技术 11-4 Session会话技术 11-5 header()函数的使用,11-1 HTTP无状态特性,1. HTTP通信机制(1)建立TCP连接(2)WEB浏览器向WEB服务器发送HTTP请求(3)WEB服务器向WEB浏览器发送HTTP响应(4)WEB服务器关闭TCP连接,11-1 HTTP无状态特性,2. HTTP无状态与TCP长连接之间的

2、关系(1)TCP短连接建立TCP连接数据传输关闭TCP连接建立TCP连接数据传输关闭TCP连接,11-1 HTTP无状态特性,2. HTTP无状态与TCP长连接之间的关系(2)TCP长连接建立TCP连接数据传输 .(保持连接). 数据传输关闭TCP连接,11-1 HTTP无状态特性,3. HTTP请求信息,11-1 HTTP无状态特性,4. HTTP响应信息,11-2 页面间的参数传递,0. 页面间为何需要进行参数传递在同一个网站内,通过HTTP无状态协议,如何跟踪某个浏览器用户,并实时记录该浏览器用户发送的连续请求呢?答案非常简单,浏览器用户打开某网站的登录页面并成功登录后,如果该登录页面向

3、该网站的其他页面传递一个“已经成功登录”的参数消息,那么,问题就会迎刃而解。而这正是会话控制的思想。,11-2 页面间的参数传递,1. 利用重定向实现参数传递 重定向就是通过各种方法将网络请求从当前页面(page1)重新定位到新页面(page2)的技术,利用这种技术可以实现页面间跳转并通过查询字符串传递参数。,11-2 页面间的参数传递,2. 使用JavaScript实现重定向javascript_redirect.php程序将javascript_redirect.php程序修改为如下代码(粗体字部分为代码的改动部分),也可实现相同的效果。, window.location=http:/ ,

4、 window.location.replace(http:/ ,11-2 页面间的参数传递,3. 使用PHP实现重定向PHP提供了header(“Location:URL“)函数实现了向响应头中添加重定向头信息从而实现重定向功能。,11-3 Cookie会话技术,1. 浏览器的Cookie设置IE浏览器Cookie的设置方法FireFox浏览器Cookie的设置方法,11-3 Cookie会话技术,2. Cookie的工作原理,11-3 Cookie会话技术,3. Cookie的内容(1)Cookie响应头信息中的Set-Cookie关键字定义了该响应中包含了Cookie信息。 (2)nam

5、e:指定Cookie的标记名称(对应浏览器端“键值对”信息中的“键”)。 (3)value:指定Cookie的值(对应浏览器端“键值对”信息中的“值”); (4)expire:指定Cookie的过期时间(Unix 时间戳:即从Unix 纪元开始的秒数),单位为秒。 (5)path:指定Cookie在WEB服务器的有效路径。设定此值后,只有当浏览器访问WEB服务器中有效路径下的页面时,浏览器才向请求头信息中加入Cookie信息。通过设置Cookie的有效路径,可以实现同一个WEB服务器下同一应用程序之间Cookie信息的安全性。,11-3 Cookie会话技术,3. Cookie的内容(6)do

6、main:指定Cookie的有效域名。设定此值后,只有当浏览器访问该域名下的页面时,浏览器才会向请求头信息中放入Cookie信息。通过设置Cookie的有效路径,可以实现同一个WEB服务器下不同应用程序之间Cookie信息的安全性。 (7)secure:指定Cookie 信息通过HTTP协议还是HTTPS协议加入请求头中,取值范围为TRUE或FALSE。默认值为FALSE,表示Cookie只有使用HTTP协议连接WEB服务器时,才将Cookie信息加入请求头中;值为TRUE时,表示Cookie只有使用HTTPS协议连接WEB服务器时,才将Cookie信息加入请求头中。,11-3 Cookie会

7、话技术,4. Cookie分类及典型应用会话Cookie会话Cookie的典型应用是实现Session会话技术(Session会话技术稍后介绍)。持久Cookie持久Cookie的典型应用是在Cookie的有效期内,打开浏览器时,浏览器自动填入用户名信息和密码信息,方便用户下次登录系统。,11-3 Cookie会话技术,5. 使用Cookie的步骤,11-3 Cookie会话技术,6. 创建Cookiesetcookie()函数的语法格式为:bool setcookie(string name, string value, int expire, string path,string doma

8、in, int secure)函数功能:setcookie()函数成功创建Cookie则返回TRUE,否则返回FALSE。函数说明:setcookie()函数中除了name参数外,其他参数都是可选的。,11-3 Cookie会话技术,7. 预定义变量$_COOKIE$_COOKIE是一个全局数组,通过$_COOKIE可以读取所有通过HTTP请求传递的Cookie信息,该数组中的每个元素的“键”为Cookie 的标记名称,数组中每个元素的“值”为Cookie的值。,11-3 Cookie会话技术,8. 删除浏览器端的Cookie1. 使用setcookie()函数将Cookie的值设置为空。2.

9、 使用setcookie()函数将Cookie的过期时间设为过去的时间。,11-3 Cookie会话技术,9. 新闻发布系统用户管理功能的实现(一)使用Cookie技术可以为“新闻发布系统”添加新的功能:将用户名和密码信息保存到浏览器端的Cookie文本文件中,下次打开登录页面时,无需再次输入用户名和密码。注意:为了防止其他用户窃取浏览器端Cookie信息,需要将浏览器端的Cookie信息加密(例如需要将密码信息MD5加密)。,11-3 Cookie会话技术,10. Cookie数组的使用使用setCookie()函数可以创建Cookie数组,语法格式如下: setcookie(string

10、name下标, string value, int expire, string path,string domain, int secure),11-3 Cookie会话技术,11. 使用Cookie的其他注意事项使用预定义变量$_COOKIE读取Cookie请求头中的Cookie信息之前,建议首先使用isset($_COOKIE“key“)判断该键名为“key”的Cookie是否存在,否则可能出现意想不到的结果。,11-4 Session会话技术,1. Session工作原理当浏览器用户访问服务器不同的PHP页面时,如果这些不同的PHP页面使用的是同一个Session ID,我们可以断定:

11、访问不同PHP页面的浏览器用户是同一个浏览器用户。,11-4 Session会话技术,1. Session工作原理,11-4 Session会话技术,2. 使用Session的步骤,11-4 Session会话技术,3. php.ini有关Session的配置(1)session.save_handler = files:设置服务器保存用户个人信息时的保存方式,默认值为files表示用文件储存存储Session信息。如果想要使用数据库存储Session信息,可将session.save_handler选项设为“user“。(2)session.save_path = “c:/wamp/tmp“

12、:在save_handler 设为files时,用于设置Session文件的保存路径。(3)session.use_cookies = 1:默认的值是1,代表SessionID使用Cookie传递(推荐使用);为0时使用查询字符串传递;,11-4 Session会话技术,3. php.ini有关Session的配置(4)session.name = PHPSESSID:Session ID的名称,默认值为“PHPSESSID”。不管使用Cookie传递Session ID还是使用查询字符串传递Session ID,都需要指定Session ID的名称。 (5)session.auto_star

13、t = 0 :在浏览器请求服务器页面时,是否自动开启Session,默认值为0表示不自动开启Session(推荐使用)。(6)session.cookie_lifetime = 0:设置Session ID在Cookie中的过期时间,默认值为0,表示浏览器一旦关闭Session ID立即失效(推荐使用)。,11-4 Session会话技术,3. php.ini有关Session的配置(7)session.cookie_path = / :使用Cookie传递Session ID时Cookie的有效路径,默认为” /”。(8)session.cookie_domain =:使用Cookie传递S

14、ession ID时Cookie的有效域名,默认为空。(9)session.gc_maxlifetime = 1440:设置Session文件在服务器端的储存时间,如果超过这个时间,那么Session文件将会自动失效。默认值为1440秒钟(24分钟),表示1440秒无操作,该Session文件就会自动失效。 注意:Session文件失效不意味Session文件被删除。,11-4 Session会话技术,4. 开启Session开启Session,使用session_start()函数: bool session_start ( void )。 该函数没有参数,且返回值永为TRUE。 sessi

15、on_start()函数的主要功能是: (1)加载php.ini配置文件中有关Session的配置信息(例如Session生存期、Session保存路径等信息)至WEB服务器内存。 (2)创建Session ID或使用已有的Session ID(例如btek48cklarn1m73eg2qkcsu12)。 (3)在WEB服务器创建Session文件或解析已有的Session文件。(4)产生Cookie响应头信息,Cookie响应头信息会随着响应发送给浏览器,该Cookie响应头信息形如:“Set-Cookie: PHPSESSID= btek48cklarn1m73eg2qkcsu12;”。,

16、11-4 Session会话技术,5. 预定义变量$_SESSION$_SESSION是一个全局数组,$_SESSION负责解析和修改Session文件。,11-4 Session会话技术,6. 删除和销毁Sessionsession_unset()函数 功能:删除当前内存中$_SESSION数组中的所有元素,并删除Session文件中的用户信息,并不删除Session文件以及不释放对应的Session ID。 session_unset()函数等效于:$_SESSION=array();。session_destroy()函数 功能:销毁Session文件,并将Session ID置为0。 销毁成功后函数返回TRUE,否则返回FALSE。,11-4 Session会话技术,7. Session的综合应用,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号