对php里的Session和Cookie的一些理解

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报头输入的值。








猜你喜欢

转载自blog.csdn.net/W1517055683/article/details/80283489
今日推荐