有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。
上一篇我们完成了cookie的7天免登录功能的实现,本文接着说‘Cookie与Session’这块的Session管理部分。
Session 管理
对比Cookie和Session会话文件中保存的数据是以变量的形式创建的,创建的会话变量在生命周期(24分钟)中可以被跨页的请求所引用。另外,Session是存储在服务器端的会话,比起Cookie安全,并且也不会像Cookie那样有存储长度的限制。
1 了解Session
Session译为会话。其本义是指有始有终的一系列动作或消息,如打电话时拿起手机拨号到挂断电话的一系列过程成为一个Session。官方描述:Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统所经过的时间。因此,Session实际上是一个特定的时间概念。
1.1 Session工作原理
当启动一个Session会话时,会生成一个随机且唯一的session_id,也就是Session的文件名,此时session_id存储在服务器的内存中,当关闭页面时,此id会被自动注销,重新登陆此页面,会再次生一个随机的唯一的id。
1.2 Session的功能
Session在web技术中非常重要。由于网页是一种给无状态的连接程序,因此无法得知用户的浏览器状态。通过Session则可记录用户有关的信息,以供用户再次以此身份对Web服务器提交要求时做确认。例如:在浏览购物网站中,通过Session记录用户登录的信息,以及用户所购买的商品,如果没有Session,那么用户每进入一个页面都需要登录以此用户名和密码。
另外,Session会话适用于存储信息量比较少的情况。如果用户需要存储的信息量相对较少,且不需要长期存储,那么使用Session把信息存储到服务器端比较合适。
2 创建会话
创建会话流程如下:
2.1 启动会话
php启动会话采用session_start()方法
bool session_start(void);
注意:通常session_start()函数在页面开始位置调用,会话变量被存储到$_SESSION中。
2.2 存储会话
$_SESSION变量是一个数组,开启绘画之后,就可以使用$_SESSION变量来存取信息了。当要把信息存入Session的时候,编码如下:
$_SESSION('username') = '路飞';
判断存储的用户名的Session会话变量是否为空,如果不为空,则将该会话变量赋给$myS变量:
<?php
$_SESSION['username'] = '路飞';
if(!empty($_SESSION['username'])){
$myS = $_SESSION['username'];
echo '$myS值为:'.$myS;
}
?>
2.3 读取会话
读取会话很简单,就像使用数组一样:
$username = $_SESSION['username'];
2.4 删除会话
删除会话的方法主要有删除单个会话、删除对个会话和结束当前会话3种,下面分别进行介绍。
2.4.1 删除单个会话
删除会话变量,同数组的操作一样,直接注销$_SESSION数组的某个元素即可。
unset($_SESSION['username']);
注意:使用unset()函数时,该函数会将全局变量$_SESSION销毁,而且没有办法将其恢复,用户也不能再注册$_SESSION变量。如果要删除多个或者全部会话,可采用下面的两种方法。
2.4.2 删除多个会话
如果想以此注销所有的会话变量,则可以将一个空的数组赋给$_SESSION,代码如下:
$_SESSION = array();
2.4.3 结束当前会话
如果整个会话已经结束,首先应该注销所有的会话变量,然后使用session_destroy()函数清除结束当前的会话,并清空会话种的所有资源,彻底销毁Session,代码如下:
session_destroy();
这些就是关于session的概念性的内容。
下一篇 使用Session实现判断用户登录功能