PHP Session
一、需求分析
使用PHP存储某些数据到Session,所有页面能直接调用这些数据,也能清除Session
二、应用场景
场景1.登录页面,用户登录后存储用户的某些数据,其他页面以此来判断是否登录
场景2.用户登录后存储用户的独特信息,用于其他页面查询数据库
三、基本语法
1.存储Session
name是Session的名字可以自己设定
value是要存的值
session_start();
$_SESSION['name']=value;
2.取出Session
不同的页面要申明session的开始
以下例子都用不同的页面演示
session_start();
echo "{$_SESSION['name']}";
3.销毁Session
(1)删除某些数据
unset() 函数用于释放指定的 session 变量
isset函数是检测变量是否设置
session_start();
if(isset($_SESSION['name']))
{
unset($_SESSION['name']); //删除name的数据
}
(2)彻底销毁
session_destroy() 将重置 session,您将失去所有已存储的 session 数据。
比如用户退出登录时销毁Session
session_destroy();
四、例子
1.场景说明
用户登录后,存储用户的账号以及权限,其他页面使用ajax请求取出,用户退出后,销毁Session。
此例子PHP与页面分离,使用jQuery的Ajax请求获取数据。
2.登录代码
(1)登录后存储Session
存储Session的PHP文件:loginSession.php
$_POST[‘XX’] 是获取前端发送的数据
<?php
session_start();
$_SESSION['name']=$_POST['account'];
$_SESSION['permit']=$_POST['permit'];
?>
Ajax请求PHP文件,发送用户账号以及权限
$.ajax({
url:"php/loginSession.php",
type:"POST",
data:{account:user,permit:data}, //user是用户账号,data是用户权限
success:function(res){
console.log('存储成功')
}
})
(2)其他页面获取Session数据
获取Session数据的PHP文件:getSession.php
数组存两个值,然后返回给前端
<?php
session_start();
// echo "{$_SESSION['name']}";
// echo "{$_SESSION['permit']}";
$a=array("user"=>"{$_SESSION['name']}","permit"=>"{$_SESSION['permit']}");
echo json_encode($a); //以json格式返回
?>
前端请求获取数据
$.ajax({
url:"php/getSession.php",
type:"POST",
dataType:"json", //后端返回的是JSON,一定要注明
success:function(res){
console.log(res)
}
})
(3)用户退出登录后销毁Session
销毁Session文件:out.php
<?php
session_unset();//删除$_SESSION中所有session变量
session_destroy();//清除Session ID
?>
页面调用删除
$.ajax({
url:"php/out.php",
type:"POST",
success:function(res){
console.log('删除成功')
}
})