作者:个阖家团圆 | 来源:互联网 | 2014-06-18 09:01
在php中cookie和session经常是配合使用的,但是cookie安全性没有session高了,session只在服务器端而cookie在客户端,这个自然就明白它们的区
在php中COOKIE和session经常是配合使用的,但是COOKIE安全性没有session高了,session只在服务器端而COOKIE在客户端,这个自然就明白它们的区别了,但它们经常用于各种登录验证,下面我来介绍.
COOKIE和Session算是网站登陆验证的常用手段了.不管论坛也好,微博也好,它们都依赖于COOKIE和session以完成各项工作.
这里就不具体介绍COOKIE和Session的概念了,我们可以简单的把它们理解为临时钥匙,用于开启不同的网络资源.
下面开始介绍在PHP里如何操作COOKIE和Session.
COOKIE:
在PHP里,我们可以使用setCOOKIE()函数来设置COOKIE.但特别注意,setCOOKIE函数必须置于
标签之前.setCOOKIE函数包含了一下几个参数:setCOOKIE(name,value,expire,path,domain).name参数是用来规定COOKIE的名称的,而value则是规定对应名称COOKIE的值,expire则是设定COOKIE有效期的.特别注意path和domain参数可选的.(path是规定COOKIE的服务器路径,而domain是规定COOKIE的所有域名).
一般我们这样设置COOKIE.
设置COOKIE代码如下:
- setCOOKIE("username","Ku_Andrew",time()+3600);
- ?>
username就是我们COOKIE的名字了,而Ku_Andrew则是username的值,time()+3600就是一小时后该COOKIE过期.
现在我们用$_COOKIE来做一个实例.
设置、读取COOKIE代码如下:
- $username = $_COOKIE['username'];
- if ($username == "")
- {
- setCOOKIE("username","Ku_Andrew",time()+3600);
- echo "we've not found your username from your COOKIE";
- echo "but now we've give it to you , please refresh this page";
- die("kick me and refresh");
- }
- else
- {
- echo ("hello $usernama");
- }
- ?>
如果想做出更复杂的判断,例如用户登陆等,我们可以在IF语句中的加入从数据库从检索出来的值
Session:
与COOKIE不同,Session是保存在服务器上的,同时Session会随着浏览器的关闭而自动灭亡,生命周期较短.在PHP上,我们使用session_start()函数来启动session;与设置COOKIE相同,我们必须在
标签之前使用这个函数.使用这个函数之后我们就可以开始设置我们的Session变量了.方法也是极为简单:用$_SESSION数组直接定义.完成了定义,在不使用的时候为了节约服务器资源,我们要关闭它.这时可以使用unset()函数或者session_destroy()函数;unset()是解除变量,session_destroy()则是彻底终结session.下面是代码片段.
Session设置、读取实例代码如下:
- session_start();
- if ($_SESSION['pid'] == "")
- {
- $_SESSION['pid'] = 1;
- }
- else
- {
- $_SESSION['pid'] += 1;
- }
- echo "this is your $_SESSION['pid'] times watching this page";
- ?>
这是一个简单的网页计数器,通过设置pid来实现计数.第一次判断中,如果session为空,那么设置成一,并且读取session,反馈给用户.以后的每次访问,都会在原有session的基础上逐次加一反馈给用户.