腾讯云618限量抢购
  1. PHP+MySQL数据库教程
  2. PHP进阶教程
  3. ThinkPHP 3.0/3.1 教程

PHP Cookie

最后更新:2010-10-27 15:01阅读:28034

cookie 是服务器留在用户计算机中的小文件,网站可以用它来识别访问网站的计算机。

创建 cookie

通过 setcookie() 函数来创建一个 cookie ,成功返回 TRUE ,否则返回 FALSE 。

语法:

bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )
参数说明:
参数 说明
name cookie 名称
value 可选,cookie 值
expire 可选,过期时间,时间戳格式
path 可选,服务器端有效路径,/ 表示整个域名有效,默认为当前设置 cookie 时页面的路径
domain 可选,该 cookie 有效的域名

创建 cookie 的例子:

<?php
setcookie("username", "xiaoli", time()+3600);
?>

在该例子中,我们设置了一个名称为 username 的cookie,其值为 xiaoli ,并在1小时候后过期。如果时间也被省略,cookie 将会在会话结束后(一般是浏览器关闭)失效。

cookie 会以一定格式被存储在用户计算机特定位置。

一个更完整的例子:

<?php
setcookie("username", "xiaoli", time()+3600, "/", ".5idev.com");
?>

该例子使用了 path 和 domain 参数,即在 5idev.com 域名的 / 路径下该 cookie 都有效(即全站有效)。

读取 cookie

PHP 内置了 $_COOKIE 变量以访问设置的 cookie 值。

例子:

<?php
echo $_COOKIE["username"];	//输出 xiaoli
?>

使用 isset() 函数来检测 cookie 变量是否已经被设置:

<?php
if (isset($_COOKIE["username"])) {
    echo "欢迎你: ".$_COOKIE["username"];
} else {
    echo "请登陆";
}
?>

销毁 cookie

可以通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :

<?php
setcookie("username", "", time()-3600);
?>

提示

  1. 由于协议限制,在设置 cookie 之前,不能有任何内容向浏览器输出
  2. cookie 不会在设置的当前页生效,要访问设置的 cookie ,必须是另一个页面在过期之前访问
  3. 由于 cookie 信息存储于用户的计算机中,那么就有可能伪造 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可
腾讯云618限量抢购