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); ?>
提示
- 由于协议限制,在设置 cookie 之前,不能有任何内容向浏览器输出
- cookie 不会在设置的当前页生效,要访问设置的 cookie ,必须是另一个页面在过期之前访问
- 由于 cookie 信息存储于用户的计算机中,那么就有可能伪造 cookie 从而造成 cookie 欺骗,一般可以对 cookie 的值进行加密来预防欺骗。读取 cookie 的时候,对 cookie 解密即可
本章节内容共分 1 部分:
- PHP Cookie