使用Cookie-计数器模块.ppt

上传人:小飞机 文档编号:6549084 上传时间:2023-11-11 格式:PPT 页数:23 大小:204KB
返回 下载 相关 举报
使用Cookie-计数器模块.ppt_第1页
第1页 / 共23页
使用Cookie-计数器模块.ppt_第2页
第2页 / 共23页
使用Cookie-计数器模块.ppt_第3页
第3页 / 共23页
使用Cookie-计数器模块.ppt_第4页
第4页 / 共23页
使用Cookie-计数器模块.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《使用Cookie-计数器模块.ppt》由会员分享,可在线阅读,更多相关《使用Cookie-计数器模块.ppt(23页珍藏版)》请在三一办公上搜索。

1、第13章 使用Cookie计数器模块,Cookie是实现用户会话的主要方法之一,而用户会话是指具有唯一访问者标识(唯一地址)的访问者进入或再次进入网站的过程。正因为Cookie的这种记录访问者标识的特性,所以实现用户会话是动态网页编程语言所应具备的基本功能。作为一种主流的动态网页编程语言,PHP也实现了对Cookie的支持。本章就来介绍PHP中实现用户会话的方式:Cookie与Session,同时还将介绍以会话为基础的计数器模块。在本章中,将重点学习以下内容:Cookie操作Session操作计数器模块,13.1 Cookie操作,Cookie是实现用户会话的最重要的方式之一,本节先来介绍PH

2、P中Cookie的操作。本节内容包括什么是Cookie、如何创建Cookie、如何读取Cookie内容、向Cookie添加参数以及删除Cookie等内容。,13.1.1 什么是Cookie,本小节先来介绍一下什么是Cookie(小甜饼)。Cookie的实质是Web服务器保存在客户机计算机上的为了使服务器来辩论客户端计算机的资料。当用户在浏览某一个特定网站时,Web服务器就会发送一些资料存放在客户的计算机上。这些资料可能是用户在网站上所打的文字或所做的选择,也可能是进入网站的某一个页面。这样,当用户下次再浏览同一个网站时,Web服务器会先看看客户机中有没有上次留下的Cookie资料,如果有就会依

3、据Cookie里的内容来判断使用者及其使用内容,并将特定的网页内容重新发送到客户端的计算机上。Cookie的使用很普遍,许多提供个人化服务的网站,都是利用Cookie来辨认使用者,以便为使用者发送量身定做的内容。像是Web接口的E-mail、BBS系统甚至一些专门的管理系统,都要用到Cookie。,13.1.2 创建Cookie,在使用Cookie前,必须首先创建Cookie。在PHP中可以通过函数:setcookie()来创建Cookie,该函数的语法格式如以下代码所示:bool setcookie(string$name,string$value,int$expire,string$pat

4、h,string$domain,bool$secure,bool$httponly),13.1.3 读取Cookie,在PHP中读取Cookie可以通过其预定义变量:$_COOKIE来实现。在本书第四章介绍系统预定义变量时就曾提到该变量的作用是读取经由同域所创建的Cookie。调用时要使用数组的形式。如:$_COOKIEname每一个被创建的Cookie的名称将被作为该数组的索引,而其值则为该数组所对应的值。,13.1.3 读取Cookie,13.1.4 删除Cookie,如果已经不再需要Cookie的内容,则出于安全与资源占用考虑可以将相应的Cookie删除。要使用Cookie失效,还得通过

5、setcookie()函数,可以有两种方式完成删除指定Cookie的任务。方法一:使用setcookie()函数时,将第二个参数$value置为空字符串或者干脆省略第二个参数,这样将清除指定Cookie原有的值。如以下代码所示:setcookie(name,);settcookie(name);方法二:使用“函数”unset(),该函数的作用是释放给定的变量。所以将此“函数”作用于指定的Cookie,则指定的Cookie也将被释放。其语法格式如以下代码所示:void unset(mixed$var,mixed$var,$.),13.1.4 删除Cookie,13.2 Session操作,13.

6、1节为读者介绍了实现会话的Cookie,这一节继续来介绍另一种会话机制Session的使用。作为同属实现会话的方法Session也有着广泛的用途,而且Session与Cookie既有联系也有区别。,13.2.1 什么是Session,在计算机专业术语中,Session指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。而具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。从以上对Session的

7、定义中可以看出:一个Session的概念需要包括特定的客户端、特定的服务器端以及不中断的操作时间。A用户和C服务器建立连接时所处的Session同B用户和C服务器中建立连接时所处的Sessions是两个不同的Session。,13.2.2 使用Session,上一小节为读者介绍了什么是Session以及其工作机制,这一小节就来具体看下在PHP中如何创建Session会话。先来看一下PHP中与使用Session相关的几个常用的函数。session_start();该函数用于初始化Session数据,创建一个Session会话,或者重新开始一个当前的基于Session ID的会话(该ID会话可以通

8、过诸如GET、POST或者Cookie的请求来创建)。该函数总是返回TRUE值。,13.2.2 使用Session,13.2.3 Session的生存期,Session能否像Cookie那样设置生存周期呢?有了Session能否完全抛弃Cookie呢?其实结合Cookie来使用Session才是最方便的。Session是通过SessionID来判断是客户端用户的,而SessionID就是那个Session文件的文件名。SessionID是随机生成的,因此能保证唯一性和随机性,确保Session的安全。一般如果没有设置Session的生存周期,则SessionID存储在内存中,关闭浏览器后该ID

9、自动注销,重新请求该页面后,重新注册一个SessionID。如果客户端没有禁用Cookie,则Cookie在启动Session会话的时候扮演的是存储SessionID和Session生存期的角色。,13.2.4 删除Session,当用户退出系统时,出于安全考虑,必须要将Session进行删除。可以通过unset()或者session_destroy()两种方法来实现。其中unset()用于删除单个Session;而session_destroy()则一次销毁所有Session数据。下面分别通过相应的实例来说明,如何使用这两个方法实现对Session数据的清除操作。,13.2.4 删除Sess

10、ion,13.3 计数器模块,前两节介绍了实现用户会话的Cookie与Session,本节来介绍计数器模块。计数器是最常用的网络模块之一,几乎所有的Web应用程序都会用到计数器模块。除了最简单的访问统计之外,还可以用来进行更加复杂的每日浏览统计、每周流量排行等。甚至还可以对网站不同版块进行计数,依此来判断用户的浏览习惯等等。本节就来详细介绍相关内容。,13.3.1 计数器基本原理,计数器是用来统计网页被访问次数的工具,该工具通过后台执行的CGI,如PHP、ASP、JSP等程序来实现的。计数器的基本工作原理是这样:(1)来访者的浏览器读到页面内的计数器代码,激活计数器;(2)会按代码内指定的地址

11、去读取一个数值;(3)该数值会被CGI程序做加1的运算并得出新数值;(4)新数值会按代码内指定的或者字或者图片形式显示在浏览器内,同时新数值被保存到原位置覆盖旧数值。以上过程会在每次该页面被访问时重复一次,随之计数器显示的数值也会逐渐累加。这样就完全实现了计数器的功能。下面的几小节将分别介绍几种不同实现方法的计数器。,13.3.2 基于Cookie的计数器,本小节先来介绍最简单的一种计数器,该计数器是以Cookie作为计数载体。其实现原理是:在用户进入页面时首先判断有无实现计数的Cookie存在,如果没有先创建相应的Cookie并写入1;如果存在这样的Cookie则读取原来的值,并在原值上加1

12、,将加过的值重新写入Cookie并显示出来。,13.3.3 基于文本的计数器,小节所介绍的基于Cookie的计数器非常方便,不需要外部载体即可实现计数器的功能。但是,如果当用户在客户端浏览器设定时禁用Cookie,则上面的计数器将会停止工作。本节来介绍基于文本的计数器,该种计数器采用服务器上的一个文本文件作为计数载体。这样就完全不依赖客户端的Cookie或者其他设置,只要用户浏览网页,就会实现计数的效果。该文本计数器的实现方法是:用户进入页面时判断有无充当计数载体的文件存在,如果没有这样的文件,则使用fopen()以“w”的模式打开文件(文件不存在时会创建),并写其中写入1;如果存在文件,则读

13、出保存在文件中的数值,并将其值增加1。最后将新值写入文件并把新值显示给用户。,13.3.4 防刷新计数器,前面两节所介绍的计数器,不管是Cookie计数器也好,还是文本计数器也好都存在一个共同弊端,那就是当用户刷新页面时,计数就将持续增长。这种结果显然不是使用者想要看到的,因为这样就不能客观地反映出网站的实际浏览量。别有用心的浏览者,或者无聊的人会无止境的对页面进行刷新从而造成访问量的激增。本小节就褂梦谋疚募Session来实现一种可以防刷新的计数器。该计数器实现的原理时,进入页面时,在判断文件是否存在同时还对是否存在Session进行判断。如果不存在Session则使计数器自增,写入Sess

14、ion,并设置生命期。如果存在Session则仅读出文件中的内容并不自增。这样就可以实现防刷新的效果。,13.3.5 图形新计数器,前面介绍的计数器都是读取出相应的内容,然后直接输出字符串。这样虽然实现了计数器效果,但是内容相当单调乏味,那么怎么样才能使计数器更加丰富多彩呢?如果使用动态的GIF小图片来代替输出的数字内容,必定会使计数器更加生动。本章就来介绍图形计数器的制作。要制作图形计数器,首先要准备0-9的10个GIF图片,分别将其按照对应的内容进行命名。如:储存0的图片就叫:0.gif以此类推。难点是要对获取到的数值进行分析,逐个分析出每一位所对应的内容,然后将其替换为相应的GIF图片即

15、可。,13.3.6 多用户计数器,前面几小节制作的计数器,只能一个人使用,本小来制作一个多用户计数器。多用户计数器在单用户计数器的基础上,为每一个用户都创建相应的存储载体(可以是文件或者数据库),然后为每个用户分别计数就可以实现多用户计数器了。这里将采用数据库表的方式来制作多用户计数器,共分以下几个步骤来完成。1创建建表代码2创建多用户计数器主文件,13.4 本章小结,本章为读者介绍了实现用户会话的Cookie与Session。通过使用这两项会话技术,可以有效的对用户的使用习惯与操作进行跟踪,更好的为网站的可持续发展服务。另外还介绍了计数器模块,在介绍计数器时,分别讲解了几种不同的计数器形式。这些计数器模块虽然功能简单,但是用途相当广泛,而且也具有很强的代表性。其中的一些小程序用户完全可以将其直接用在自己需要的Web应用程序上。本章的难点在于理解Cookie与Session实现会话的工作机制,只要理解到这一点,对于其他操作,则是迎刃而解。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号