发布网友 发布时间:2022-04-06 04:08
共3个回答
懂视网 时间:2022-04-06 08:30
php登录超时session的解决办法:首先登录时候用session记录登录时间;然后页面打开时候判断session如果不存在,就跳回登录页面;接着如果session存在,则将页面加载时间和登录时间对比;最后如果大于超时时间,则删除即可。
【相关学习推荐:php编程(视频)】
php登录超时session的解决办法:
php登录超时session问题,原理是:
1、登录时候用session记录登录时间
$_SESSION['time']=time();
2、页面打开时候判断session如果不存在,就跳回登录页面;如果session存在,则将页面加载时间和登录时间对比,如果大于超时时间,则删除session,如果时间小于超时时间,则更新登录时间session值!
登录代码:
public function login(){ if($_POST){ $where['username']=$_POST['username']; $where['password']=md5("php100".$_POST['password']); $users=M('users')->where($where)->find(); if($users){ $_SESSION['id']=$users['id']; $_SESSION['user_shell']=md5($users['username'].$users['password']); $_SESSION['time']=time(); $this->redirect('Index/index'); }else{ echo "<script type='text/javascript'>alert('用户名或密码错误');window.history.go(-1);</script>"; } }else{ $this->display(); } }
公共控制器构造函数代码:
public function _initialize() { if(isset($_SESSION['user_shell'])){ if(time()-$_SESSION['time']>60){ unset($_SESSION['user_shell']); $url=U('Login/login'); Header("Location:$url"); }else{ $_SESSION['time']=time(); } }else{ $url=U('Login/login'); Header("Location:$url"); } }
【相关学习推荐:php图文教程】
热心网友 时间:2022-04-06 05:38
1,如果是指如何防止失效,那就是使用ajax,根据你的session默认过期时间,在你的程序加载的时候,将这个过期时间转换成秒数,写入到页面某个元素中,用js进行倒计时,指定一个时间定时访问一个后台程序,一般情况下在你的后台程序中session_start()就行,不行的话也可以取出session的值,再重新赋值即可。
2,另外一种就是配置服务器,延长session 的过期时间。
3,如果是让session失效,就很简单了,直接session_unregister()即可
热心网友 时间:2022-04-06 06:56
当你将页面关闭的时候,session就已经失效了,当然你也可以设置session的手动失效,
isset($_SESSION[sessionname]); // 判断该session是否存在
unset($_SESSION[sessionname]); //删除该session变量
session_destroy(); //删除所有session变量