本教程介绍了cookie的概念,并学习如何使用PHP cookie在web浏览器的请求之间维护web应用程序的状态。
cookie是以文本格式存储在用户的web浏览器中的信息。cookie以一个或多个名称-值对的形式存储,这些名称-值对可能出于隐私和安全目的进行了加密。cookie也称为web cookie、HTTP cookie或浏览器cookie。
web服务器将cookie作为HTTP头的一部分发送到web浏览器。无论何时浏览器从web服务器请求页面,cookie都会在请求中被发送回web服务器,以便网站能够读取其中的信息并执行必要的任务,比如根据用户首选项进行个性化设置。
cookie允许您存储最多4KB的数据,这是一个非常小的数量。cookie有效期是固定的。您可以将cookie的过期时间从几秒设置为任意长时间。特别是,您可以设置当web浏览器关闭时cookie即过期。
大多数现代web浏览器允许用户选择是否接受cookie,因此您不应该完全依赖它来存储关键数据。此外,现代web浏览器允许您为每个惟一域存储至少20个cookie。
PHP中使用setcookie()函数可以使得处理cookie变得很容易。
<?php
setcookie(
$name
,
$value
$expire
$path
$domain
$secure
);
setcookie()函数中的参数:
让我们来看一个在PHP中设置cookie的例子。
'user'
'itroad'
,time() + 3600);
请注意,cookie必须在脚本的任何输出之前发送。
设置好cookie之后,可以使用$_COOKIE超全局数组读取它的值。在读取cookie的值之前,应该使用isset()函数检查cookie是否可用。
下面的例子演示了如何读取我们在上面例子中设置的cookie:
if
(isset(
$_COOKIE
[
])){
echo
'Welcome, '
.
].
'!'
;
}
如果您不再需要您设置的cookie,您可以强制浏览器删除它。但是,在PHP中没有直接删除cookie的函数。不过可以使用setcookie()函数来删除一个cookie:
下面的示例通过将用户cookie的值重置为空同时将过期时间重置为过去的时间来删除用户cookie:
''
, time()-3600);
在下面的示例中,我们使用cookie来显示web页面的页面视图,当页面视图数量达到10时,我们将其重置。
define(
'MAX_PAGEVIEW'
,10);
$msg
=
// 如果还没有设置pageview cookie,则设置
(!isset(
'pageview'
,1,0,
'/'
'Welcome to my site!'
else
{
// 在cookie中读取pageview值
$pageview
= (int)
];
+=1;
(
<= MAX_PAGEVIEW){
,0,
= sprintf(
'Pageview #%d'
,time() - 3600,
'Cookie has been removed!'
?>
<h1>Cookie 示例</h1>
原文链接:https://codingdict.com/