Cookie

Cookie

由于Http协议是无状态协议,当同一个用户请求一个页面后,再请求同一个网站的另一个页面时,http协议并不能告诉服务器两个请求是来自同一个用户,不能将两次访问联系到一起。

Cookie可以让Web服务器将一些网站登录用户的资料存放于客户端的电脑上。例如:当通过验证,成功登陆网站后,在同一个网站下第一个页面的PHP脚本,会把这个用户有关的信息设置到客户端电脑的Cookie中,当再次访问同一个网站中的其他脚本时,会自动携带Cookie中的数据一起访问,服务器中的每个脚本都可以接受Cookie中的数据,不需要每访问一个页面就重新输入一次登陆者的信息。

Cookie的建立

1. 向用户端电脑设置Cookie          setcookie();

2. 在服务器端读取Cookie内容      $_COOKIE

3. 将多维数组应用于Cookie中      setcookie(“member[name]”,’liangjie’);      setcookie(“member [email]”,’1853881164@qq.com’);

4.删除Cookie                      setcookie(“member”,‘ ’,time()-3600);  //将时间设为超时

实验1

新建文件下,在其下面创建第一个.php文件,建立Cookie。代码如下:

<?php
header('Content-type:text/html;charset=utf-8');
/*
var_dump(setcookie('name','liangjie',time()+3600));
echo '<br />';
var_dump($_COOKIE);
*/
//向客户端电脑设置Cookie,有效时间为当前时间+3600s
var_dump(setcookie("member[name]",'liangjie',time()+3600));  //打印结果,若返回true则设置成功
echo '<br />';
var_dump(setcookie("member[email]",'185@163.com',time()+3600));//打印结果,若返回ture则设置成功
?>

在同文件夹下面创建第二个.php文件,验证Cookie。代码如下:

<?php
header('Content-type:text/html;charset=utf-8');
    var_dump($_COOKIE);
?>

在同文件夹下面创建第三个.php文件,删除Cookie。代码如下:

<?php
//遍历删除
foreach($_COOKIE['member'] as $key => $val){
    var_dump(setcookie("member[{$key}]",'',time()-3600));
}

注:实验前最好清空一下浏览器浏览记录

实验2

此实验说明同一个用户使用不同的浏览器访问同一个网站时,设置的Cookie值不同

新建文件下,在其下面创建第一个.php文件,建立Cookie。代码如下:

<?php
header('Content-type:text/html;charset=utf-8');
//随机产生一个ID,并在此ID前随机产生一个数作为前缀(避免ID重复)交给Cookie
$id = uniqid(rand(1000,9999).'_');
var_dump(setcookie('id',$id,time()+3600));    //打印结果,返回值为ture,设置成功
?>

新建文件下,在其下面创建第二个.php文件,验证Cookie。代码如下:

<?php
header('Content-type:text/html;charset=utf-8');
    var_dump($_COOKIE);
?>

新建文件下,在其下面创建第三个.php文件,删除Cookie。代码如下:

<?php
//遍历删除
foreach($_COOKIE['member'] as $key => $val){
    var_dump(setcookie("member[{$key}]",'',time()-3600));
}
原文地址:https://www.cnblogs.com/lian9/p/12266587.html