session

PHP session变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的

session变量

当在计算机上操作某个应用程序(打开,修改,关闭)。这就很想一次会话(session)。计算机知道你是谁,何时打开和关闭程序。但是当网络出现问题时,HTTP地址就无法保持状态,Web服务器就不知道你是谁和干了什么

session就是为了解决这个问题而存储在服务器上的用户信息,方便用户使用而产生的

session的工作机制是为每一个访客创建一个唯一的id,基于这个UID来存储变量,UID存储到cookie中,或通过URL传导

启动session

在存储到session之前,必须启动会话

session_start()函数必须位于<html>标签之前

1
2
3
4
5
6
7
<?php session_start(); ?>

<html>
<body>

</body>
</html>

该代码会向服务器注册用户的会话,以便可以开始保存用户信息,同时会分配一个UID

存储session变量

存储和取回session变量是使用$_SESSION变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
// 存储 session 数据
$_SESSION['views']=1;
?>

<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>

<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>

</body>
</html>

运行结果
1
浏览量:1

销毁session

希望删除某些session变量,可以使用unset()或session_destroy()函数

unset()函数用于释放指定的session变量

1
2
3
4
5
6
7
<?php
session_start();
if(isset($_SESSION['views']))
{
unset($_SESSION['views']);
}
?>

也可以通过调用session_destroy()函数彻底销毁session

1
2
<?php
session_destroy();

总结

1.使用session前,需要在<html>标签之前使用session_start()函数

2.使用session_start()函数之后,服务器便会注册用户的会话,并开始保存用户信息,同时会分配UID

3.存储session变量使用$_SESSION直接创建和赋值

4.unset()可以销毁指定的session变量,而调用session_destroy()便会失去所有已存储的session数据