Cookie是客户端的存储空间,由浏览器来维持。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择,比如说重写URL和隐藏表单域。(搜索的)
PHP Session
(引用)PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。
PHP session 它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。
Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。
把用户信息存储到 PHP session 中之前,首先必须启动会话。
<?php
session_start();
?>
储存session的变量
存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量
<?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>
<html>
<head>
<meta charset="utf-8">
<title>####</title>
</head>
<body>
<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>
</body>
</html>
输出结果:浏览量:1
销毁session
删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
<?php
session_start();
if(isset($_SESSION['views']))
{
unset($_SESSION['views']);
}
?>
也可以用session_destroy()彻底删除数据
<?php
session_destroy();
?>
usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。
PHP cookie
(引用)cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。
创建cookie
例
创建一个名为user的cookie,并赋值为like,并在1小时之后过期
<?php
setcookie("user","like",time()+3600);
?>
<html>
...
取回Cookie的值
例
<?php
// 输出 cookie 值
echo $_COOKIE["user"];
// 查看所有 cookie
print_r($_COOKIE);
?>
使用isset() 函数来确认是否已设置了 cookie:
<html>
<head>
<meta charset="utf-8">
<title>like</title>
</head>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "欢迎 " . $_COOKIE["user"] . "!<br>";
else
echo "普通访客!<br>";
?>
</body>
</html>
对于Cookie的读取
可以调用request.getcookie要获取浏览器发送来的cookie,需要调用HttpServleRequest的getCookies方法,这个调用返回的是Cookie对象的数组,对应由HTTP请求中Cookie报头输入的值。