主頁(yè) > 知識(shí)庫(kù) > PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法【基于thinkPHP框架】

PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法【基于thinkPHP框架】

熱門(mén)標(biāo)簽:南寧高頻外呼回?fù)芟到y(tǒng)哪家好 電話機(jī)器人危險(xiǎn)嗎 深圳外呼系統(tǒng)收費(fèi) 專業(yè)電話機(jī)器人批發(fā)商 400電話辦理福州市 長(zhǎng)沙crm外呼系統(tǒng)業(yè)務(wù) 離石地圖標(biāo)注 江蘇外呼電銷(xiāo)機(jī)器人報(bào)價(jià) 400電話申請(qǐng)方法收費(fèi)

本文實(shí)例講述了PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法。分享給大家供大家參考,具體如下:

對(duì)于安全性要求比較高的web網(wǎng)站,特別是后臺(tái)管理,有時(shí)候需要甄別自己的賬號(hào)是否被盜或者是否有另一個(gè)人此刻登陸了在進(jìn)行后臺(tái)操作,這些都會(huì)很不安全,為了避免兩個(gè)人同時(shí)登錄同時(shí)操作,可以強(qiáng)制下線一個(gè)賬號(hào)。

通過(guò)IP判斷當(dāng)然是不行的,因?yàn)镮P是隨時(shí)會(huì)在某一個(gè)網(wǎng)段內(nèi)變化的,但是有一個(gè)機(jī)制,恰巧可以解決這個(gè),那就是session,只要使用同一個(gè)瀏覽器訪問(wèn)網(wǎng)站,瀏覽器不關(guān)閉每個(gè)來(lái)訪者的session_id是不變的,這也正是解決這個(gè)問(wèn)題需要的。

以TP框架搭建的網(wǎng)站后臺(tái)為例,思路如下:

(1)數(shù)據(jù)庫(kù)用戶表

在user表中,增加一個(gè)字段`session_id` varchar(32),用來(lái)存放登錄之后的session_id。

(2)用戶登錄

用戶登錄,就是正常的判斷賬號(hào)密碼以及驗(yàn)證碼,當(dāng)這些都驗(yàn)證通過(guò)的時(shí)候,取出當(dāng)前的session_id存入數(shù)據(jù)庫(kù)user表中。

M('user')->where(array('id'=>$_SESSION['uid']))->save(array('session_id'=>session_id()));

(3)解決異地登錄問(wèn)題

對(duì)于后臺(tái)操作,為了便于驗(yàn)證和操作安全,基本都會(huì)先創(chuàng)建一個(gè)基礎(chǔ)控制器BaseController,然后后臺(tái)的其他操作控制器都繼承這個(gè)基礎(chǔ)控制器。對(duì)于后臺(tái)的每一步操作之前,用戶狀態(tài)的檢測(cè)都放在BaseController控制器的初始化_initialize()方法中。

現(xiàn)在在_initialize()方法中,除了驗(yàn)證用戶登錄狀態(tài)是否被鎖定等等,還要取出本地session_id和存放在user表中的session_id進(jìn)行比對(duì),如果對(duì)不上那么表名賬號(hào)在異地有登陸,這時(shí)候可以迫使強(qiáng)制下線,退回到登錄頁(yè)面。

$user = M('user')->where(array('id'=>$_SESSION['uid']))->find();
$session_id = session_id();
if($user['session_id'] != $session_id){
 session_destroy();
 $this->error('您的賬號(hào)在其他地方登錄,您已經(jīng)被強(qiáng)制下線', U('login'));
}

當(dāng)然也可以獲取到異地登陸的IP,給出提醒:

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • easyswoole一鍵安裝腳本及寶塔安裝錯(cuò)誤問(wèn)題
  • thinkphp框架類庫(kù)擴(kuò)展操作示例
  • PHP框架實(shí)現(xiàn)WebSocket在線聊天通訊系統(tǒng)
  • thinkPHP框架樂(lè)觀鎖和悲觀鎖實(shí)例分析
  • 淺談laravel框架與thinkPHP框架的區(qū)別
  • 自制PHP框架之設(shè)計(jì)模式
  • 自制PHP框架之模型與數(shù)據(jù)庫(kù)
  • 自制PHP框架之路由與控制器
  • 詳解PHP框架EasySwoole

標(biāo)簽:株洲 太原 濱州 南昌 興安盟 白酒營(yíng)銷(xiāo) 曲靖 南京

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法【基于thinkPHP框架】》,本文關(guān)鍵詞  PHP,實(shí)現(xiàn),用戶,異地,登錄,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法【基于thinkPHP框架】》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于PHP實(shí)現(xiàn)用戶異地登錄提醒功能的方法【基于thinkPHP框架】的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章