当前位置:首页 > PHP教程 > php会话 > 列表

php cookie之学习笔记

发布:smiling 来源: PHP粉丝网  添加日期:2014-03-07 13:47:49 浏览: 评论:0 

cookie是所有程序中都会用到的一个会话,下边我把我学习php cookie 的笔记分享给各位同学,本文章介绍了所有关于cookie入门篇的小技巧,有需要的同学可参考.

Cookie是什么意思?

Cookie是用来存储用户名、密码、访问该站点的次数等.在访问某个网站时,Cookie将html网页发送到浏览器中一个小段信息,以脚本的形式保存在客户端的计算机上.

Cookie有什么用?如果用服务器去记录个用户上站的次数,那么长期积累下来数据必然十分庞大,对服务器来说负担很中.因此,可以将数据存入到用户自己的计算机中,等到需要时服务器再读取用户计算机上的Cookie提取数据,这样一来服务器就不需要记录大量的数据.

一般来说,Cookie通过HTTP Headers从服务器端返回浏览器.首先,服务器端在响应中利用Set Cookie Header来创建一个Cookie.然后浏览器在请求中通过Cookie Header包含这个已经创建的Cookie,并且将它返回至服务器,从而完成浏览器的验证.

Cookie的创建

php创建一个Cookie需要调用setcookie()函数,其结构形式如下:

bool setcookie(string name[,string value[,int expiration[,string path[,bool secure]]]]) 

参数name表示Cookie的名称,其它参数可选;

参数value是存入Cookie的值;

参数expiration指定Cookie过期的时间;

参数path指定Cookie在服务器上的有效路径,用来设置Cookie将被发送到服务器的那一个文件夹下;

参数secure指定Cookie是否通过安全的https链接发送.

php cookie实例代码如下:

  1. <?php  
  2.  setcookie("c1","my name is Rose",time()+3600); 
  3.  /* 建立一个名称为"c1"的cookie 过期时间为3600秒 */  
  4. ?> 

cookie的访问

大多数变量只在内存占用空间,因此当php脚本终结时变量也从内存中被释放清空.而Cookie可以将变量的值长期存储到用户计算机的硬盘,当我们需要调用此变量的值时,读取该Cookie的名称即可.

前面一节Cookie的创建已经建立了一个命名为”c1″的Cookie,下面我们来测试一下这个Cookie是否成功创建了.

php 访问Cookie的实例代码如下:

  1. <?php  
  2.  echo "c1的Cookie值是 " .$_COOKIE['c1'] ."<br>"
  3.  echo "c2的Cookie值是 " .$_COOKIE['c2']; 
  4. ?> 

Cookie的时间

如果没有设置Cookie的有效时间,那么当关闭浏览器时Cookie就会消失.如果要保留Cookie,就必须给它设置一个有效的时间.

php Cookie时间设置方法:

time()+秒数 

time()表示目前用户操作系统的时间,后面的秒数即是Cookie的有效时间.如果要制定一个特定的日期,可以使用mktime()函数,其结构形式如下:

mktime(时,分,秒,月,日,年) 

如果要立即删除一个Cookie,可以将时间设置成过去的一个时间即可.

php Cookie时间设置实例代码如下:

  1. setcookie("a","10",time()-60); /* 设置时间为之前60秒,其值立即被删 */ 
  2. setcookie("a","10",time()+60); /* 设置有效时间为60秒 */ 
  3. setcookie("a","10",mktime(0,0,0,11,1,2011)); /* 失效时间为2011年11月1日0点0分0秒 */  

下面介绍一个利用Cookie设计的一个简单统计程序:

实例代码如下:

  1. <?php  
  2.  $count=$_COOKIE['user']; 
  3.  $count++; 
  4.  setcookie("user",$count,time()+3600);  
  5.  echo "这是你的第 $count 次访问!"
  6. ?> 

Cookie数组

我们同样可以创建一个php cookie数组,下面通过实例介绍实现方法.

实例代码如下:

  1. <?php  
  2.  setcookie('name[1]','Rose'); 
  3.  setcookie('name[2]','John'); 
  4.  setcookie('name[3]','Mikle'); 
  5.  if(is_array($_COOKIE['name'])){ /* 判断是否数组 */ 
  6.   foreach($_COOKIE['name'as $name=>$value) { 
  7.    echo "$name:$value<br>"
  8.   } 
  9.  } 
  10.  else echo "不是数组"
  11. ?> 

Cookie的限制

Cookie是用来存储用户浏览网站的重要信息,为了防止乱用导致用户的信息泄露,所以对Cookie作出一定的限制:

浏览器记录用户cookie大小限制在4KB以内的容量;

浏览器只保存某个站点服务器的Cookie数量限制在20个,如果超出这个数量,则之前保存的会被删除.

每个用户的浏览器最多只能访问300个Cookie.

用户可以在浏览器设置是否启用Cookie存储信息,因此,要使用Cookie存储信息,必须先确认浏览器中Cookie的功能是否已经打开.例如IE9浏览器,打开“属性”–“隐私”–“高级”选项,选中启用即可:

提示:浏览器创建了一个Cookie之后,对于每个针对该网站的请求都会在Header中带着这个Cookie.而且浏览器会一直发送,知道Cookie过期位置.不过对于其它网站的请求,Cookie是绝对不会跟着发送的.

Tags: Cookie

分享到: