js中如何判断session的缓存数据是否清空_PHP使用session

1.打开session

调用session_start()函数打开一个session。

例:session_start.php

session_start();//打开一个session

......//其他代码

?>

虽然session_start()函数之前不能发送信息,但是可以调用ini_set()等后台控制函数。

例:session_ini.php

ini_set(‘session.use_cookies’, 1);//设置php.ini中的session.use_cookies为真

ini_set(‘session.use_only_cookies’, 1);//设置php.ini中的session.use_only_cookies为真

session_start();//打开一个session

......//其他代码

?>

注:通过设置php.ini中的session.auto_start => 1 来打开自动session ,让php在用户每次访问时自动打开一个session。如果设置自动打开session,那么就不能把一个对象放在session中。

2.访问session中的数据

1)把数据写入session

把数据写入session的意思就是对$_SESSION变量赋值。例如:$_SESSION[‘name’] = ‘zhangsan’。

2)从session中读取数据

例如:$NAME = $_SESSION[‘name’]。

注:如果session变量是使用session_register()注册的。检查变量是否存在就一定使用session_is_register()函数检查,但由于安全原因不建议直接使用session_register()。

在读取$_SESSION变量前可以用isset( $_SESSION[‘name’])来检查$_SESSION[‘name’]是否存在,如果存在,返回TRUE,否则返回FALSE。

来看看如何写入session和读取session数据

例:session_page1.php

session_start(); //打开一个session

print 'Welcome to page 1'; //打印Welcome to page 1

$_SESSION['name'] = 'liuran';//$_SESSION['name']赋值为liuran

$_SESSION['ID'] = '123456';//$_SESSION['ID']赋值为123456

$_SESSION['time'] = time();//$_SESSION['time']赋值为当前时间

print '
page 2 with cookie';//打印page 2 with cookie路径

print '
page 2 with SID';//打印page 2 with SID路径

//unset($_SESSION['name']);

?>

session_page2.php

session_start();//打开一个session

print '

';//按预格式化的文本

print 'Welcome to page 2
';//打印Welcome to page 2

if (isset($_SESSION['name'])) { //判断$_SESSION['name']是否存在

print '$_SESSION['name']='.$_SESSION['name'].'
'; //如果$_SESSION['name']存在则读取并打印其值

} else {

print '$_SESSION['name'] 没有设置
'; //如果$_SESSION['name']不存在则提示用户其没有设置

}

if (isset($_SESSION['ID'])) {//判断$_SESSION['ID']是否存在

print '$_SESSION['ID']='.$_SESSION['ID'].'
';//如果$_SESSION['ID']存在则读取并打印其值

} else {

print '$_SESSION['ID'] 没有设置
'; //如果$_SESSION['ID']不存在则提示用户其没有设置

}

if (isset($_SESSION['time'])) {//判断$_SESSION['time']是否存在

print '$_SESSION['time']='.date('Y m d H:i:s', $_SESSION['time']).'
';//如果$_SESSION['time']存在则读取并打印其值

} else {

print '$_SESSION['time'] 没有设置
'; //如果$_SESSION['time']不存在则提示用户其没有设置

}

print '$_SESSION=';//打印$_SESSION=

var_dump($_SESSION);//打印$_SESSION的数据机构,用于给读者展示其内部结构

print '
page 1';//打印page 1路径,方便返回

?>

结果:

d638d9a17260493d1ebe3dc0f092054a.png
bf38c73c6ab37969b885a34db18a8d3d.png
d3608d5a83910dba93f9987c38ed0039.png

3.把数据从session中清除

1)unset()函数

本质上$_SESSION是一个标准的数组,可以像数组那样写入和读取。所以把数据从session中清除也可像操作数据那样使用unset()函数。例如unset($_SESSION['name'])

回到session_page1.php中测试。

结果:

cc51983b5065eaa735d9713544facd3b.png

2)session_destroy()

如果结束当前的session则调用session_destroy()函数,这个函数会清空当前会话中的所以资源。但不会清除与当前session相关联的全局变量,也不会删除客户端的session cookie。

例:

session_start();//打开一个session

$_SESSION = array();//删除所有的session变量

if (isset($_COOKIE[session_name()])) { //调用session_name()获取session id ,然后检查$_COOKIE是否包含这个session

setcookie(session_name(), '', time()-42000, '/');//调用setcookie()删除包,含此session id 的cookie

}

session_destroy();//最后彻底销毁一个session

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值