php cookie之学习笔记
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实例代码如下:
- <?php
- setcookie("c1","my name is Rose",time()+3600);
- /* 建立一个名称为"c1"的cookie 过期时间为3600秒 */
- ?>
cookie的访问
大多数变量只在内存占用空间,因此当php脚本终结时变量也从内存中被释放清空.而Cookie可以将变量的值长期存储到用户计算机的硬盘,当我们需要调用此变量的值时,读取该Cookie的名称即可.
前面一节Cookie的创建已经建立了一个命名为”c1″的Cookie,下面我们来测试一下这个Cookie是否成功创建了.
php 访问Cookie的实例代码如下:
- <?php
- echo "c1的Cookie值是 " .$_COOKIE['c1'] ."<br>";
- echo "c2的Cookie值是 " .$_COOKIE['c2'];
- ?>
Cookie的时间
如果没有设置Cookie的有效时间,那么当关闭浏览器时Cookie就会消失.如果要保留Cookie,就必须给它设置一个有效的时间.
php Cookie时间设置方法:
time()+秒数
time()表示目前用户操作系统的时间,后面的秒数即是Cookie的有效时间.如果要制定一个特定的日期,可以使用mktime()函数,其结构形式如下:
mktime(时,分,秒,月,日,年)
如果要立即删除一个Cookie,可以将时间设置成过去的一个时间即可.
php Cookie时间设置实例代码如下:
- setcookie("a","10",time()-60); /* 设置时间为之前60秒,其值立即被删 */
- setcookie("a","10",time()+60); /* 设置有效时间为60秒 */
- setcookie("a","10",mktime(0,0,0,11,1,2011)); /* 失效时间为2011年11月1日0点0分0秒 */
下面介绍一个利用Cookie设计的一个简单统计程序:
实例代码如下:
- <?php
- $count=$_COOKIE['user'];
- $count++;
- setcookie("user",$count,time()+3600);
- echo "这是你的第 $count 次访问!";
- ?>
Cookie数组
我们同样可以创建一个php cookie数组,下面通过实例介绍实现方法.
实例代码如下:
- <?php
- setcookie('name[1]','Rose');
- setcookie('name[2]','John');
- setcookie('name[3]','Mikle');
- if(is_array($_COOKIE['name'])){ /* 判断是否数组 */
- foreach($_COOKIE['name'] as $name=>$value) {
- echo "$name:$value<br>";
- }
- }
- else echo "不是数组";
- ?>
Cookie的限制
Cookie是用来存储用户浏览网站的重要信息,为了防止乱用导致用户的信息泄露,所以对Cookie作出一定的限制:
浏览器记录用户cookie大小限制在4KB以内的容量;
浏览器只保存某个站点服务器的Cookie数量限制在20个,如果超出这个数量,则之前保存的会被删除.
每个用户的浏览器最多只能访问300个Cookie.
用户可以在浏览器设置是否启用Cookie存储信息,因此,要使用Cookie存储信息,必须先确认浏览器中Cookie的功能是否已经打开.例如IE9浏览器,打开“属性”–“隐私”–“高级”选项,选中启用即可:
提示:浏览器创建了一个Cookie之后,对于每个针对该网站的请求都会在Header中带着这个Cookie.而且浏览器会一直发送,知道Cookie过期位置.不过对于其它网站的请求,Cookie是绝对不会跟着发送的.