W3C中文教程
全球最大最新的中文 Web 技术教程
HTML CSS SQL PHP COLORS MYSQL BOOTSTRAP
 

PHP Cookie



Cookie通常用于识别用户。


什么是 Cookie?

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。


通过PHP创建Cookie

setcookie() 函数用于设置 cookie。

语法

setcookie(name, value, expire, path, domain, secure, httponly);

只有 name 参数是必需的,其他参数都是可选的。


PHP 创建/取回 Cookie

下面实例创建了以 "user" 为名称值为 "John Doe" 的 cookie。这个 cookie 将在30天(86400 * 30)后失效。 "/" 意味着这个 cookie 将在整个网站都起作用。

然后我们取会名称为 "user" 的 cookie (使用全局变量$_COOKIE)。我们也可以使用 isset() 函数检查 cookie 是否被设置:

Example

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
运行实例 »

注意: setcookie() 函数必须放到 <html> 标签之前。

注意:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。


修改 Cookie 值

要修改 cookie 时,再次使用 setcookie() 函数进行重新设置即可:

Example

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
运行实例 »

删除 Cookie

当删除 cookie 时,您应当使用 setcookie() 函数将过期日期变更为过去的时间点:

Example

<?php
// set the expiration date to one hour ago
setcookie("user", "", time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>
运行实例 »

检查cookie是否能使用

下面的实例创建一个小脚本检查cookie是否能使用。首先,使用 setcookie() 函数 创建 一个名为 ”test“ 的 cookie,然后再计算 $_COOKIE 数组的值:

Example

<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies are enabled.";
} else {
    echo "Cookies are disabled.";
}
?>

</body>
</html>
运行实例 »

完整的 PHP HTTP 手册

如需查看所有 HTTP 函数的完整参考手册,请访问我们的 PHP HTTP 手册