cookie 是服务器留在用户计算机中的小文件,网站可以用它来识别访问网站的计算机。
创建 cookie
通过 setcookie() 函数来创建一个 cookie ,成功返回 TRUE ,否则返回 FALSE 。
语法:
code
bool setcookie( string name [, string value [, int expire [, string path [, string domain ]]]] )
参数说明:
参数 说明
name cookie 名称
value 可选,cookie 值
expire 可选,过期时间,时间戳格式
path 可选,服务器端有效路径,/ 表示整个域名有效,默认为当前设置 cookie 时页面的路径
domain 可选,该 cookie 有效的域名
创建 cookie 的例子:
code
<?php
setcookie("username", "xiaoli", time()+3600);
?>
在该例子中,我们设置了一个名称为 username 的cookie,其值为 xiaoli ,并在1小时候后过期。如果时间也被省略,cookie 将会在会话结束后(一般是浏览器关闭)失效。
cookie 会以一定格式被存储在用户计算机特定位置。
一个更完整的例子:
code
<?php
setcookie("username", "xiaoli", time()+3600, "/", ".5idev.com");
?>
该例子使用了 path 和 domain 参数,即在 5idev.com 域名的 / 路径下该 cookie 都有效(即全站有效)。
读取 cookie
PHP 内置了 $_COOKIE 变量以访问设置的 cookie 值。
例子:
code
<?php
echo $_COOKIE["username"];
//输出 xiaoli
?>
使用 isset() 函数来检测 cookie 变量是否已经被设置:
code
<?php
if (isset($_COOKIE["username"])) {
echo "欢迎你: ".$_COOKIE["username"];
} else {
echo "请登陆";
}
?>
销毁 cookie
可以通过设置 cookie 过期时间为以前的时间点来销毁一个 cookie :
code
<?php
setcookie("username", "", time()-3600);
?>
提示
由于协议限制,在设置 cookie 之前,不能有任何内容向浏览器输出
cookie 不会在设置的当前页生效,要访问设置的 cookie ,必须是另一个页面在过期之前访问
由于 cookie 信息存储于用户的计算机中,那么就有可能伪造 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可
|