>php教程 >php手册 >php开发之cookie

php开发之cookie

WBOY
WBOY원래의
2016-06-13 09:07:56771검색

php开发之cookie

<code>cookie是一种在浏览器远端存储数据并以此来跟踪和识别用户的机制。简单的说,cookie是web服务器暂时存储在用户硬盘上的一个文件夹,并随时被web浏览器读取。当用户再次访问web网站的时候,网站通过获取cookie记录用户的特定访问信息(如:上次访问的位置,花费的时间,用户名和密码) ,从而迅速做出相应,比如不需要用户输入密码就可以登录。
文本文件的格式如下:用户名@网站地址[数字].txtcookie 的功能主要有以下几个方面:
</code>

1,记录访客的某些信息。如可以利用cookie记录用户的访问页面的次数,或者是用户曾经输入的信息。另外,某些网站可以自动记录上次方可登录的用户名。
2,在页面间传递变量。浏览器并不会保存当前页面的任何变量信息,当页面被关闭时,页面上的所有变量信息将随之消失。如果声明一个变量id=8,要把这个变量传递到另一个页面,可以先把这个变量以cookie的形式保存下来,然后在下一个页面读取cookie中该变量的值。
3,将索要查看的Internet页存储在cookie临时文件夹中,可以提高以后浏览器的访问速度。
在php中通过setcookie()函数创建cookie。cookie是HTTP头标的组成部分而头标必须在页面其他内容之前发送,他必须最先输出。若在setcookie()函数之前输出一个HTML标记,或者echo语句,甚至一个空行都会导致程序出错。
语法格式如下:
bool setcookie(string name[,string value[,int explre[,string path[,string domain[,int secure]]]]])
setcookie()函数的参数说明如下:


使用setcookie()函数创建cookie 示例代码如下:

<code class="hljs perl"><!--?php

//setcookie("TMCookie",'www.baidu.com'); 
//setcookie("TMCookie",'www.baidu.com',time()+60);     //cookie的有效期为60秒

//设置有效时间为60秒,有效目录为"/temp/",有效于域名为"www.baidu.com" 及其所有子域名
$value =88;
setcookie("TMCookie",$value,time()+3600,"/temp/",".baidu.com");

?--></code>

cookie的读取
在php中,可以直接使用全局数组$_COOKIE[]来读取浏览器的cookie的值。
使用print_r()函数读取cookie的变量。示例代码如下:

<code class="hljs xml"><!--?php

if(!isset($_COOKIE["visittime"])){                //检测cookie文件是否存在,如果不存在

    setcookie("visittime",date("Y-m-d H:i:s"));   //设置一个cookie变量
    echo "欢迎第一次访问网站!!!";                    //输出字符串
}else{

    setcookie("visittime",date("Y-m-d H:i:s"),time()+60);
    echo "上次访问的时间为:".$_COOKIE["visittime"]."\n";

}

echo "本次访问的时间为:".date("Y-m-d H:i:s")."\n";



?--></code>

运行结果如下:

删除cookie
删除cookie主要是使用setcookie函数来实现的,就是将cookie的失效时间减1秒,如题如下:
setcookie(“”visittime),time()-1);

cookie 的生命周期
如果cookie不设定时间,就表示它的生命周期为浏览器会话的期间,只要关闭浏览器,那么cookie就会被删除。这种cookie被称为会话cookie,一般不保存在硬盘上,而是保存在内存中。
如果cookie设定失效时间,那么浏览器会把cookie保存到硬盘中,再次打开浏览器时cookie仍然后笑,直到cookie的有效期超时。
浏览器最多允许存储的cookie文件为300个,而且每个cookie文件最大支持容量为4k,每个域名最多支持20个cookie。如果达到限制时,浏览器就会随机的删除cookies。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.