Heim  >  Artikel  >  php教程  >  php开发之cookie

php开发之cookie

WBOY
WBOYOriginal
2016-06-13 09:07:56744Durchsuche

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。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn