




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
当登录某一个论坛后,会发现在后续访问的若干个论坛页面上都会看到你的登录用户名;当访问完某一个邮箱,关闭电脑,当在某一个时间范围内打开邮箱的主页,发现你的邮箱仍然处于登录状态,一直没有退出过;或者当你做了一个投票系统,却发现有的人利用恶意刷新来不断提高某项的投票值。这一切的操作与数据的存储都无关,实现的办法就是在PHP中运用session与cookie。 本章将介绍如何灵活运用session与cookie这两个小玩意,让你的网页看上去更灵活更 生动!,第13章 session与cookie的使用 -网站开发专用书,【例13-1】session使用多页之间信息的传递,session与cookie都是能够保存用户信息的变量,两者的区别如下: session保存在服务器端;cookie保存在客户端。 session的安全性没有cookie高。 session在浏览器关闭后自动作废,而cookie可以自己设定一个有效保存期限。 可以创建多个session,但太多的session会影响到服务器的性能;每个用户的浏览器只能保存某个Web服务器的至多20个cookies,而且每个cookie的大小不能超过4KB。但客户端的浏览器最多能存储300个cookies。 session不会被禁用,因为其内容保存在服务器端;而现在大部分的浏览器都是可以由用户自动设置是否开启cookie,所以,如果用户将浏览器设置为关闭cookie,即使你运用cookie设置了许多的内容,一切将是没有任何意义的。 session适合于存储用户信息量比较少的情况。 session需要在使用之前,在文件开头的位置放上session_start()语句,开启session的使用,或者也可以将php.ini中的session.auto_start设为1。,【例13-1】session使用多页之间信息的传递,session_start()语句一定要放在程序的第一行,否则会出现如下的错误信息: Warning: session_start() function.session-start: Cannot send session cache limiter - headers already sent (output started at 所有定义的session变量存放的路径为服务器的php.ini文件中的session.save_path选项所指定的目录下的一个文件中。 打开php.ini文件,查找到如下信息: session.save_path = “d:Program FilesphpStudyPHP5session“ 然后根据这个路径,找到相应的会话文件,用记事本打开,显示信息如下: username|s:7:“yuanxin“; 要使用session变量name,可以直接用$_SESSION“name“,若设置php.ini中的register_globals为ON,也可以直接使用$name访问该session变量。 注销session变量在使用完session变量后,需要注销该变量,采用session_unregister()进行注销。,【例13-2】cookie使用用户登录保存期限,cookies,英文意思是小甜点,这里是指存放在客户端上的一小段消息。当访问某网站时,你所提交的信息能被服务器通过浏览器存储到你所在的本地硬盘上。当下次再访问那个网站时,服务器也将自动检索这些信息。所以,当我们访问完自己的邮箱后,等下次再登录时,会发现浏览器竟然还记忆着你以前登录的信息。当然,前面也提过,现在的浏览器都可以由用户开启或者关闭cookie服务,要想实现这个神奇而又人性化的功能,必须确保用户开启了浏览器的cookie访问服务。,【例13-2】cookie使用用户登录保存期限,(1)创建cookies。通过setcookie()函数来创建一个cookie。 语法格式如下: bool setcookie ( string name , string value , int expire , string path , string domain , bool secure ) 该函数有6个参数,一般常用的是前3个参数,它们的作用与意义如下: name:该参数指定新建cookie的名称,这是一个全局变量。变量名与普通变量命名规则一样,否则会得到系统自动改变的cookie名称。 value:cookie的值。 expire:cookie的有效期限。这个参数的值是由格林威治时间(GMT)格式给出的。当不指定该参数时,cookie的有效期限为不保存,cookie随着客户端浏览器窗口的关闭而自动终止。该参数通常用 time() 函数再加上秒数来设定 cookie 的有效期。或者用 mktime()来实现,time()表示当前时间。,【例13-2】cookie使用用户登录保存期限,path:该参数指定了在web服务器上cookie被认为有效的文件和目录层次,默认值为“/”,意思为cookie在服务器上的所有文件和目录下都被认为是有效的,若是指定了路径,则cookie将仅在指定目录里的文件和子目录下有效。 domain:该参数用来指定cookie被认为有效的主机名或者域名。若缺省,则默认为发行这个cookie的主机。 secure:该参数用来确定cookie是否必须通过安全通道进行传送,默认值为0,表示cookie将通过一条非安全通道传送。若设置该参数为1,则cookie将通过能保证安全的HTTPS协议进行传送。,【例13-2】cookie使用用户登录保存期限,(2)访问cookie。定义好cookie全局变量后,我们需要对它进行访问,采用$_COOKIE全局变量对其进行访问。语法格式如下: $_COOKIE变量名 (3)多值cookie。 在PHP中,除了有单值cookie外,还允许使用多值cookie,即同一个cookie可以赋值多个。一个cookie赋多个值,可以通过在 cookie 名称中使用数组符号来设定数组 cookie,可以设定多个 cookie 作为数组元素,在脚本提取 cookie 时所有的值都放在一个数组中,如下列代码中定义了一个名为products的cookie数组,分别给其赋值,并显示。,【例13-2】cookie使用用户登录保存期限,(4)删除cookie。当某个cookie使用完不再有价值时,需要对其进行删除操作。删除某个cookie也是运用的setcookie()函数进行。只需要将setcookie()函数中的cookie的值设为空,就相当于删除了某个cookie。语法格式如下: bool setcookie ( string name ),【例13-3】cookie实例防重复刷新,防止一天内重复刷新计数器的基本原理为:先判断有没有cookie,若没有cookie则启动一次计数器,并且写入当天系统日期到cookie数据。当用户刷新或者第二次浏览时,就判断cookie的日期是否与系统日期一致,若一致则只读出原始数据而不增加计数器的值。 防止一台机器重复投票的基本原理为:先判断cookie的值是否与用户的主机IP地址一样,若一样则显示信息“一个小时只能投票一次,你已经投过票了!”;若两个值不一致,表示该用户主机IP地址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 碳中和目标下的水利投资路径选择-洞察及研究
- 机器学习算法在折价率预测中的性能比较-洞察及研究
- 创新社区服务模式研究-洞察及研究
- 产业治理能力现代化路径-洞察及研究
- GIS在地图制图中的集成与创新-洞察及研究
- 游戏虚拟经济模型-洞察及研究
- 粘液再生的纳米技术助力-洞察及研究
- 装饰装修施工员考试历年真题集锦
- 部编版六年级语文下册课文预习与复习单
- 小学阶段写作能力提高训练方案
- 水利工程水利工程施工技术规范
- 创建平安医院课件
- 2025年高压电工考试题库:基础理论知识要点
- 2025中证金融研究院招聘11人考试参考题库及答案解析
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 商场保安礼仪培训课件
- 全国2025年质量月活动知识竞赛题库及答案
- 金税四期培训
- 现浇空心板桥梁施工方案
- 托管班安全培训课件
- 人教版(2024)八年级上册英语Unit 2 Home Sweet Home教案
评论
0/150
提交评论