PHP實(shí)現(xiàn)會員單一賬號登錄

發(fā)布時間:2024-02-12
本文實(shí)例講述了php實(shí)現(xiàn)會員賬號單唯一登錄的方法。分享給大家供大家參考,具體如下:
情景再現(xiàn)
同一會員賬號限制在同一臺設(shè)備(電腦、手機(jī)、ipad等)上單點(diǎn)登錄,重復(fù)登錄后,原登錄訪問頁面時則直接跳轉(zhuǎn)到登錄頁面且需要重新登錄才能正常訪問。
原理分析
a賬號在a電腦上登錄后,a賬號此時又用b電腦再次登錄,則a電腦請求頁面時,提示“重新登錄”的信息,并跳轉(zhuǎn)到登錄頁面
思路解析:
a賬號在a電腦上登錄后,把session id寫入txt文件,每次訪問頁面時,都做一次校驗(yàn)(比較txt文件的值是否和當(dāng)前登錄的session_id的值相同)
實(shí)例
1、入口與校驗(yàn)(index.php)
<?php session_start(); $uid = 10; if(is_login($uid)){ header('location:loginsuccess.php'); }else{ $getlogsessionid = file_get_contents('session_log/'.$uid.'.txt'); if($getlogsessionid){ echo 已在其他地方登錄,請重新登錄; echo <br>; echo 5秒后跳轉(zhuǎn)到登錄頁面!; header(refresh:5;url=login.php); }else{ echo '第一次登錄...'; echo <br>; echo 3秒鐘后跳轉(zhuǎn)到登錄頁面!; header(refresh:3;url=login.php); } } / * 通過登錄時寫入文件session_id和當(dāng)前登錄設(shè)備后生成的session_id進(jìn)行比較,相同則是同一臺設(shè)備登錄,不同則在別的地方登錄 */ function is_login($uid){ $getlogsessionid = file_get_contents('session_log/'.$uid.'.txt'); if($getlogsessionid == session_id()){ return true; }else{ return false; } }2、登錄(login.php)
<?php session_start(); echo 登錄中....; echo '<br>'; $uid = 10; file_put_contents('session_log/'.$uid.'.txt',session_id()); echo 登錄完成;3、登錄成功(loginsuccess.php)
<?php echo 我登錄成功了!;4、保存sessionid文件夾(session_log),測試代碼,需要手動建一個或者賦予自動生成文件的權(quán)限
上一個:怎樣預(yù)防銀杏落果
下一個:瑞士novasina傳感器

智能型土壤養(yǎng)分儀概述
win10損壞的映像怎么修復(fù)(損壞的映像0xc000012f如何修復(fù))
5000左右的游戲筆記本電腦哪個好2021(5000左右的游戲筆記本推薦性價比高的)
手機(jī)屏損壞怎么連接電腦(手機(jī)屏壞了,怎么連接電腦操作手機(jī))
1.87KΩ 1%貼片電阻
怎么刪除美拍上的視頻,美拍怎么刪除已發(fā)布視頻
中央空調(diào)水系統(tǒng)和氟系統(tǒng)有哪些區(qū)別?一起來了解下吧!
辦公用的筆記本電腦哪一款比較好(辦公用的筆記本哪個品牌比較好)
離婚后孩子撫養(yǎng)權(quán)問題變更
四季秋海棠莖腐病的癥狀和防護(hù)方法
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos