中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何實現登錄超時檢測功能

發布時間:2021-07-10 09:41:28 來源:億速云 閱讀:155 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“php如何實現登錄超時檢測功能”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“php如何實現登錄超時檢測功能”這篇文章吧。

php登錄超時檢測功能實例詳解

前言:

php登錄超時問題,當用戶超過一定時間沒有操作頁面時自動退出登錄,原理是通過js進行訪問判斷的!代碼如下(以thinkphp5.0版本為例)

1、創建登錄版塊控制器:

<?php
namespace app\manage\control;
use \think\Controller;

class Main extends Controller{

 protected $request;

 public function _initialize(){
 $this->request = \think\Request::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、創建公共控制器(所有需要驗證登錄的控制器都繼承該控制器)

<?php

namespace app\common\control;
use \think\Controller;
class AdminBase extends Controller{
 protected $request;
 public function _initialize(){
 parent::_initialize();
  $this->request = \think\Request::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如何實現登錄超時檢測功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

新巴尔虎右旗| 万载县| 盐城市| 元谋县| 怀宁县| 邵东县| 灌阳县| 庄河市| 桓台县| 鲜城| 民县| 雅江县| 丰宁| 石嘴山市| 康平县| 获嘉县| 休宁县| 开化县| 济源市| 景德镇市| 永春县| 洛宁县| 漯河市| 楚雄市| 苍梧县| 沂南县| 阿拉善右旗| 会昌县| 恭城| 大邑县| 九江市| 扎鲁特旗| 白朗县| 铁力市| 西畴县| 金华市| 永德县| 郎溪县| 申扎县| 巴林左旗| 新丰县|