PHP Cookie
HTTP是无状态的协议,它没有一个内建机制来保存两个请求之间的状态。当一个用户在请求一个页面后在请求另外一个页面,HTTP将无法告诉我们这两个请求是来自同一个用户。
而Cookie 是一种在浏览器端(客户端)储存数据并以此来跟踪和识别用户的机制。
PHP 提供 setcookie() 或 setrawcookie() 函数来设置 Cookie。
设置Cookie
<?php $username = 'newbie'; setcookie("user", $username); setcookie("user", $username, time() + 3600); // 1 小时过期 // $user = $_COOKIE['user']; // 不能在当前的请求中访问
设置成功后,值会被自动 urlencode 编码,并且不能立即在后面的代码中访问。
下次打开页面时可以使用 $_COOKIE 读取。
访问Cookie
<?php $user = $_COOKIE['user']; var_dump($user); // 输出newbie
收到 Cookie 时,值会被自动 urldecode 解码。
删除Cookie
要删除一个 cookie,只要将过期时间设置为过去,就可以触发浏览器的删除机制。
<?php // 设置过期时间为一个小时前 setcookie("user", "", time() - 3600);