PHP中的Cookie

Posted shineguang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的Cookie相关的知识,希望对你有一定的参考价值。

1.1原理:

       Cookie是保存在客户端的信息包(一个文件)

       1.客户端向服务器发送请求

        2.服务器将值放到响应头中发送到客户端

        3.浏览器自动的将信息放到请求投资带到服务器

1.2设置Cookie

<?php
setcookie(‘name‘,‘tom‘);    //将name=tom放到响应头中

         客户端有cookei信息后,每次请求服务器,cookie的信息都会自动的放到请求头中带到服务器。

1.3获取Cookie的值

<?php
echo $_COOKIE[‘name‘];    //从请求头中获取名字是name的cookie

           注意:      

           1、关闭浏览器后,cookie消失。这种cookie称为临时性cookie

          2、cookie的信息不可以在不同的浏览器中共享,不可以跨浏览器。

1.4永久性Cookie

         说明:关闭浏览器后cookie的值不消失

         语法:给cookie添加过期时间就形成了永久性cookie,过期时间是时间类型是时间戳

 

$time=time()+3600;
setcookie(‘name‘,‘tom‘,$time);     //cookie的有效时间是3600秒

 

1.5Cookie的有效目录         

             cookie默认在当前目录及子目录中有效

           cookie一般要设置在整站有效

setcookie(‘name‘,‘tom‘,0,‘/‘);     //   /表示根目录

1.6支持子域名

<?php
setcookie(‘name‘,‘tom‘,0,‘/‘,‘baidu.com‘);   //在baidu.com域名下都有效
?>
<a href="http://www.bb.baidu.com/bb.php">跳转</a>

1.7是否安全传输            

                安全传输就是https传输。

               默认情况下https和http都可以传输cookie

setcookie(‘name‘,‘tom‘,0,‘/‘,‘‘,true);     //   true表示只能是https传输

1.8是否安全访问

                 默认情况下,PHP和JS都可以访问cookie

               安全访问:PHP可以访问,JS不可以 默认是false

<?php
setcookie(‘name‘,‘tom‘,0,‘/‘,‘‘,false,true);    
?>
<a href="/5-demo2.php">跳转</a>

1.9删除Cookie

  <?php
//setcookie(‘name‘,false); //删除cookie方法一
//setcookie(‘name‘); //删除cookie方法二
setcookie(‘name‘,‘tom‘,time()-1); //删除cookie方法三

                 注意:cookie中只能保存数字和字符串。

1.10cookie的缺点           

                  1、因为在浏览器中可以看到cookie 的值,所以安全性低

              2、因为只能保存字符串和数字,所以可控性差

              3、因为数据放在请求头中传输,增加了请求时候的数据负载。

              4、因为数据存储在浏览器中,但浏览器存储空间是有吸限制的,一般是4K。

 

以上是关于PHP中的Cookie的主要内容,如果未能解决你的问题,请参考以下文章

unset($_COOKIE['name']) 与 PHP$_ 中的 setcookie

PHP记住cookie中的登录状态[重复]

PHP中的Cookie

如何从 php 中的 cookie 将数据保存在 mysql 中? [复制]

用 PHP 清除 Cookie 在 Safari 中的行为很奇怪

如果 PHP 中的键以 X 开头,则删除 cookie