香港高速VIP云机房火爆上线啦!无需备案,开通即用!配套《巅云自助建站系统3.0》将带给您飞一般的可视化拖拽建站体验,欢迎免费体验。

建站新闻

php登录超时检测功能实例详解
一佰互联网站建设(www.yinxi.net) 发布时间:2019-04-26 09:02:37 浏览数: 18
0

php登录超时检测功能实例详解

前言:

php登录超时问题,当用户超过一定时间没有操作页面时自动退出登录,原理是通过js进行访问判断的!代码如下(以thinkphp5.0版本为例)

1、创建登录版块控制器:

<?phpnamespace appmanagecontrol;use 	hinkController;class Main extends Controller{ protected $request; public function _initialize(){ $this->request = 	hinkRequest::instance(); } public function login(){ if($this->request->method() == "POST"){ $data = $this->request->param();   //这里为登录验证(自行补充)   .......   //通过登录提交的信息获取数据库中的用户,并记录ID($id)   cookie("ADMIN_ID",$result["id"]);//cookie缓存   cookie("LOGIN_TIME",Request::instance()->time()+3600);//记录登录时间,并缓存1小时 } return view(); }  // 检测是否登录超时(js调用,url为:http://您的域名/manage/main/loginLosetime) public function loginLosetime(){ $logintime = cookie("LOGIN_TIME"); $time = request()->time(); if($time > $logintime){ return json(["code"=>1,"msg"=>"登录超时!","url"=>url("main/login")]); }else{ return json(["code"=>0]); } }}

2、创建公共控制器(所有需要验证登录的控制器都继承该控制器)

<?phpnamespace appcommoncontrol;use 	hinkController;class AdminBase extends Controller{ protected $request; public function _initialize(){ parent::_initialize();  $this->request = 	hinkRequest::instance(); $this->checkLogin();//检测登录 $this->doAction();//记录动作 } protected function checkLogin(){ $cookie_admin_id = cookie("ADMIN_ID"); if(!empty($cookie_admin_id)){ //获取登录用户信息   ....... }else{ if($this->request->isAjax()){ return $this->error("您还没有登录!",url("main/login")); }else{ header("Location:".url("main/login")); exit(); } } } // 页面操作记录 protected function doAction(){ $logintime = cookie("LOGIN_TIME");//获取缓存登录超时时间 $time = request()->time();//当前时间  //判断当前时间是否大于缓存时间 或者 超时时间小于60秒后,自动多加1个小时时间 if($time > $logintime || ($time - $logintime) < 60){ $newLogintime = $logintime + 3600; cookie("LOGIN_TIME",$newLogintime); } }}

3、js文件

$.ajaxSetup({ cache: false});$(function(){ setInterval(function() { loginLosetime() }, 360000);//设置1小时自动执行 loginLosetime 函数(时间可自行调整)});// 登录超时检测function loginLosetime(){ $.get(AJAX_URL+"main/loginLosetime",function(res){ if(res.code == 1){ window.location.href = res.url; } });}

最后在所有的页面调用上诉js文件即可,登录页面可不用调用!

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

上一篇:Thinkphp实现站点静态化的方法详解
下一篇: php base64 编码与解码实例代码
[返回新闻列表]

相关新闻more

09
04月
设计师如何渡过最艰难的前三年?来看前辈的经验

@做设计的面条 :我最近收到了很多工作1-3年的面粉们发来的求助,他们有的将简历和作品集发出去后就石沉了大海,有的好不容易找到了新工作却还没... >>详情

25
04月
PHP绕过open_basedir限制操作文

0x00 预备知识关于open_basediropen_basedir是php.ini中的一个配置选项它可将用户访问文件的活动范围限制在指定... >>详情

14
04月
重庆地毯_重庆百度快照优化案例

重庆网站优化,重庆百度快照优化案例展示,关键词:重庆地毯 文章由重庆一佰互联高端网站建设http://www.yinxi.ne... >>详情

23
04月
怎样将WordPress主题品牌化:制作有效

WordPress能够为您创建网站打造良好的基础,但是当您刚开始使用该平台时,您可能会因为选择太多而感到无所适从。哪一个主题比较适合您的品牌... >>详情

营业执照. cdn加速服务 备案系统认证 网络安全协会 我们的支付方式AAA认证
上海 北京 深圳 广州 天津 杭州 南京 武汉 成都 沈阳 大连 长沙 济南 青岛 苏州 福州 无锡 哈尔滨 宁波 重庆 大庆 厦门 西安 长春 珠海 郑州 海口 昆明 太原 石家庄 温州 合肥 乌鲁木齐 南宁 南通 合肥 兰州 呼和浩特 贵阳 烟台 秦皇岛 包头 唐山 银川 汕头 连云港 威海 西宁 湛江 北海 万州 涪陵 长寿 黔江 永川 丰都 忠县 江津 南川 开县 云阳 万盛 梁平 垫江 巫山 城口 建站宝盒 免费建站 门户网站建设 微信网站 手机网站 门户网站制作

7x24小时服务电话:18581389571 传真:023-85725751 免费建站交流群:236412099 139947842(自助建站交流) E-Mail:post@yinxi.net 网站投诉:
重庆楚捷科技有限公司 一佰互联©版权所有 自助建站(www.yinxi.net,Inc.) 2001-2020 All Rights Reserved 本站程序受法律保护,网站法律顾问:ITLAW-庄毅雄律师
中华人民共和国信息产业部网站备案号:渝ICP备12000592号