表示恨不能理解session的用法,我在做一个退出功能,把session的值给清空了,之后跳转到登陆页面,还是可以通过浏览器的后退回到登进去的状态,请问这个应该怎么做?
public function loginout(){
$_SESSION = array(); //清除SESSION值.
if(isset($_COOKIE[session_name()])){ //判断客户端的cookie文件是否存在,存在的话将其设置为过期.
setcookie(session_name(),'',time()-1,'/');
}
session_destroy(); //清除服务器的sesion文件
$this->redirect("index");
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
每跳转一个页面先判断session是否存在如果session不存在就跳到登录页面,登录后将session保存,
如果有session继续进行操作,
如果点击退出登录就先清session,再跳到登录界面
希望能帮到你
具体session的用法可以百度
你点击浏览器后退的时候,浏览器直接从本地缓存取的页面的源代码,并不会真正访问那个url,访问不了php控制器,判断不了session。
解决办法是在相关页面加上ajax代码判断当前登陆状态,未登录就用js控制页面跳转
一般是基类中判断是否登陆
浏览器回退是读取本地缓存
可以参考楼上的异步提交方案
你在做退出登录加一个 unset($_SESSION) 语句 这样 即使你在做回退也不会有登录状态。
1,如果单纯用session 退出,用户不点击退出,
2,用户点击退出,session_distory();
如果有需求可以在数据库加上一个字段is_login来控制,用户点击session_destoty()。然后ajax去更改状态
设置session的过期,如果想实现session过期时候前端作出相应变化可以考虑持续请求后端检查session是否过期。