第13章session与cookie的使用(PHP开发从入门到精通)

上传人:新** 文档编号:584302438 上传时间:2024-08-30 格式:PPT 页数:10 大小:466.52KB
返回 下载 相关 举报
第13章session与cookie的使用(PHP开发从入门到精通)_第1页
第1页 / 共10页
第13章session与cookie的使用(PHP开发从入门到精通)_第2页
第2页 / 共10页
第13章session与cookie的使用(PHP开发从入门到精通)_第3页
第3页 / 共10页
第13章session与cookie的使用(PHP开发从入门到精通)_第4页
第4页 / 共10页
第13章session与cookie的使用(PHP开发从入门到精通)_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《第13章session与cookie的使用(PHP开发从入门到精通)》由会员分享,可在线阅读,更多相关《第13章session与cookie的使用(PHP开发从入门到精通)(10页珍藏版)》请在金锄头文库上搜索。

1、PHPPHP开发从入门到精通开发从入门到精通当登录某一个论坛后,会发现在后续访问的若干个论坛页面上都会看到当登录某一个论坛后,会发现在后续访问的若干个论坛页面上都会看到你的登录用户名;当访问完某一个邮箱,关闭电脑,当在某一个时间范你的登录用户名;当访问完某一个邮箱,关闭电脑,当在某一个时间范围内打开邮箱的主页,发现你的邮箱仍然处于登录状态,一直没有退出围内打开邮箱的主页,发现你的邮箱仍然处于登录状态,一直没有退出过;或者当你做了一个投票系统,却发现有的人利用恶意刷新来不断提过;或者当你做了一个投票系统,却发现有的人利用恶意刷新来不断提高某项的投票值。这一切的操作与数据的存储都无关,实现的办法就

2、是高某项的投票值。这一切的操作与数据的存储都无关,实现的办法就是在在PHP中运用中运用session与与cookie。本章将介绍如何灵活运用本章将介绍如何灵活运用session与与cookie这两个小玩意,让你的网页这两个小玩意,让你的网页看上去更灵活更看上去更灵活更 生动!生动!第13章 session与cookie的使用 -网站开发专用书PHPPHP开发从入门到精通开发从入门到精通【例13-1】session使用多页之间信息的传递session与与cookie都是能够保存用户信息的变量,两者的区别如下:都是能够保存用户信息的变量,两者的区别如下:session保存在服务器端;保存在服务器端

3、;cookie保存在客户端。保存在客户端。session的安全性没有的安全性没有cookie高。高。session在浏览器关闭后自动作废,而在浏览器关闭后自动作废,而cookie可以自己设定一个有效保存期限。可以自己设定一个有效保存期限。可以创建多个可以创建多个session,但太多的,但太多的session会影响到服务器的性能;每个用户的会影响到服务器的性能;每个用户的浏览器只能保存某个浏览器只能保存某个Web服务器的至多服务器的至多20个个cookies,而且每个,而且每个cookie的大小的大小不能超过不能超过4KB。但客户端的浏览器最多能存储。但客户端的浏览器最多能存储300个个coo

4、kies。session不会被禁用,因为其内容保存在服务器端;而现在大部分的浏览器都是不会被禁用,因为其内容保存在服务器端;而现在大部分的浏览器都是可以由用户自动设置是否开启可以由用户自动设置是否开启cookie,所以,如果用户将浏览器设置为关闭,所以,如果用户将浏览器设置为关闭cookie,即使你运用,即使你运用cookie设置了许多的内容,一切将是没有任何意义的。设置了许多的内容,一切将是没有任何意义的。session适合于存储用户信息量比较少的情况。适合于存储用户信息量比较少的情况。session需要在使用之前,在文件开头的位置放上需要在使用之前,在文件开头的位置放上session_st

5、art()语句,开启语句,开启session的使用,或者也可以将的使用,或者也可以将php.ini中的中的session.auto_start设为设为1。PHPPHP开发从入门到精通开发从入门到精通【例13-1】session使用多页之间信息的传递session_start()语句一定要放在程序的第一行,否则会出现如下的错误信息:语句一定要放在程序的第一行,否则会出现如下的错误信息:Warning: session_start() function.session-start: Cannot send session cache limiter - headers already sent (

6、output started at 所有定义的所有定义的session变量存放的路径为服务器的变量存放的路径为服务器的php.ini文件中的文件中的session.save_path选项所指定的目录下的一个文件中。选项所指定的目录下的一个文件中。打开打开php.ini文件,查找到如下信息:文件,查找到如下信息:session.save_path = d:Program FilesphpStudyPHP5session然后根据这个路径,找到相应的会话文件,用记事本打开,显示信息如下:然后根据这个路径,找到相应的会话文件,用记事本打开,显示信息如下:username|s:7:yuanxin;要使用

7、要使用session变量变量name,可以直接用,可以直接用$_SESSIONname,若设置,若设置php.ini中的中的register_globals为为ON,也可以直接使用,也可以直接使用$name访问该访问该session变量。变量。注销注销session变量在使用完变量在使用完session变量后,需要注销该变量,采用变量后,需要注销该变量,采用session_unregister()进行注销。进行注销。PHPPHP开发从入门到精通开发从入门到精通【例13-2】cookie使用用户登录保存期限ncookies,英文意思是小甜点,这里是指存放在客户端上的一小,英文意思是小甜点,这里是

8、指存放在客户端上的一小段消息。当访问某网站时,你所提交的信息能被服务器通过浏览器存段消息。当访问某网站时,你所提交的信息能被服务器通过浏览器存储到你所在的本地硬盘上。当下次再访问那个网站时,服务器也将自储到你所在的本地硬盘上。当下次再访问那个网站时,服务器也将自动检索这些信息。所以,当我们访问完自己的邮箱后,等下次再登录动检索这些信息。所以,当我们访问完自己的邮箱后,等下次再登录时,会发现浏览器竟然还记忆着你以前登录的信息。当然,前面也提时,会发现浏览器竟然还记忆着你以前登录的信息。当然,前面也提过,现在的浏览器都可以由用户开启或者关闭过,现在的浏览器都可以由用户开启或者关闭cookie服务,

9、要想实现服务,要想实现这个神奇而又人性化的功能,必须确保用户开启了浏览器的这个神奇而又人性化的功能,必须确保用户开启了浏览器的cookie访访问服务。问服务。PHPPHP开发从入门到精通开发从入门到精通【例13-2】cookie使用用户登录保存期限(1)创建)创建cookies。通过。通过setcookie()函数来创建一个函数来创建一个cookie。语法格式如下:语法格式如下:bool setcookie ( string name , string value , int expire , string path , string domain , bool secure )该函数有该函数

10、有6个参数,一般常用的是前个参数,一般常用的是前3个参数,它们的作用与意义如下:个参数,它们的作用与意义如下:name:该参数指定新建:该参数指定新建cookie的名称,这是一个全局变量。变量名与的名称,这是一个全局变量。变量名与普通变量命名规则一样,否则会得到系统自动改变的普通变量命名规则一样,否则会得到系统自动改变的cookie名称。名称。value:cookie的值。的值。expire:cookie的有效期限。这个参数的值是由格林威治时间(的有效期限。这个参数的值是由格林威治时间(GMT)格式给出的。当不指定该参数时,格式给出的。当不指定该参数时,cookie的有效期限为不保存,的有效期

11、限为不保存,cookie随着客户端浏览器窗口的关闭而自动终止。该参数通常用随着客户端浏览器窗口的关闭而自动终止。该参数通常用 time() 函数再函数再加上秒数来设定加上秒数来设定 cookie 的有效期。或者用的有效期。或者用 mktime()来实现,来实现,time()表表示当前时间。示当前时间。PHPPHP开发从入门到精通开发从入门到精通【例13-2】cookie使用用户登录保存期限path:该参数指定了在:该参数指定了在web服务器上服务器上cookie被认为有效的文件和目录层被认为有效的文件和目录层次,默认值为次,默认值为“/”,意思为,意思为cookie在服务器上的所有文件和目录下

12、都在服务器上的所有文件和目录下都被认为是有效的,若是指定了路径,则被认为是有效的,若是指定了路径,则cookie将仅在指定目录里的文件将仅在指定目录里的文件和子目录下有效。和子目录下有效。domain:该参数用来指定:该参数用来指定cookie被认为有效的主机名或者域名。若缺被认为有效的主机名或者域名。若缺省,则默认为发行这个省,则默认为发行这个cookie的主机。的主机。secure:该参数用来确定:该参数用来确定cookie是否必须通过安全通道进行传送,默认是否必须通过安全通道进行传送,默认值为值为0,表示,表示cookie将通过一条非安全通道传送。若设置该参数为将通过一条非安全通道传送。

13、若设置该参数为1,则,则cookie将通过能保证安全的将通过能保证安全的HTTPS协议进行传送。协议进行传送。PHPPHP开发从入门到精通开发从入门到精通【例13-2】cookie使用用户登录保存期限(2)访问)访问cookie。定义好。定义好cookie全局变量后,我们需要对它进行访问,全局变量后,我们需要对它进行访问,采用采用$_COOKIE全局变量对其进行访问。语法格式如下:全局变量对其进行访问。语法格式如下:$_COOKIE变量名变量名(3)多值)多值cookie。在在PHP中,除了有单值中,除了有单值cookie外,还允许使用多值外,还允许使用多值cookie,即同一个,即同一个co

14、okie可以赋值多个。一个可以赋值多个。一个cookie赋多个值,可以通过在赋多个值,可以通过在 cookie 名称名称中使用数组符号来设定数组中使用数组符号来设定数组 cookie,可以设定多个,可以设定多个 cookie 作为数组元作为数组元素,在脚本提取素,在脚本提取 cookie 时所有的值都放在一个数组中,如下列代码中时所有的值都放在一个数组中,如下列代码中定义了一个名为定义了一个名为products的的cookie数组,分别给其赋值,并显示数组,分别给其赋值,并显示。PHPPHP开发从入门到精通开发从入门到精通【例13-2】cookie使用用户登录保存期限(4)删除)删除cooki

15、e。当某个。当某个cookie使用完不再有价值时,需要对其进行使用完不再有价值时,需要对其进行删除操作。删除某个删除操作。删除某个cookie也是运用的也是运用的setcookie()函数进行。只需要将函数进行。只需要将setcookie()函数中的函数中的cookie的值设为空,就相当于删除了某个的值设为空,就相当于删除了某个cookie。语法格式。语法格式如下:如下:bool setcookie ( string name )PHPPHP开发从入门到精通开发从入门到精通【例13-3】cookie实例防重复刷新n防止一天内重复刷新计数器的基本原理为:先判断有没有防止一天内重复刷新计数器的基本

16、原理为:先判断有没有cookie,若没有,若没有cookie则启动一次计数器,并且写入当天系统日期则启动一次计数器,并且写入当天系统日期到到cookie数据。当用户刷新或者第二次浏览时,就判断数据。当用户刷新或者第二次浏览时,就判断cookie的日的日期是否与系统日期一致,若一致则只读出原始数据而不增加计数器的期是否与系统日期一致,若一致则只读出原始数据而不增加计数器的值。值。n防止一台机器重复投票的基本原理为:先判断防止一台机器重复投票的基本原理为:先判断cookie的值是否的值是否与用户的主机与用户的主机IP地址一样,若一样则显示信息地址一样,若一样则显示信息“一个小时只能投票一一个小时只

17、能投票一次,你已经投过票了!次,你已经投过票了!”;若两个值不一致,表示该用户主机;若两个值不一致,表示该用户主机IP地址地址至少在一个小时内没有参与投票,则获取当前投票值,参与投票。至少在一个小时内没有参与投票,则获取当前投票值,参与投票。PHPPHP开发从入门到精通开发从入门到精通小结n本章主要详细讲解了本章主要详细讲解了session和和cookie的语法与运用。主要包括的语法与运用。主要包括利用利用session进行多页间信息的传递、进行多页间信息的传递、cookie的语法以及有效期限的的语法以及有效期限的设置、如何利用设置、如何利用cookie防止重复刷新等内容。相信在熟练掌握完本章防止重复刷新等内容。相信在熟练掌握完本章后,对你的后,对你的PHP项目的开发会有非常重要的意义。项目的开发会有非常重要的意义。

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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