同一會(huì)員賬號(hào)限制在同一臺(tái)設(shè)備(電腦、手機(jī)、Ipad等)上單點(diǎn)登錄,重復(fù)登錄后,原登錄訪問(wèn)頁(yè)面時(shí)則直接跳轉(zhuǎn)到登錄頁(yè)面且需要重新登錄才能正常訪問(wèn)。
原理分析A賬號(hào)在A電腦上登錄后,A賬號(hào)此時(shí)又用B電腦再次登錄,則A電腦請(qǐng)求頁(yè)面時(shí),提示“重新登錄”的信息,并跳轉(zhuǎn)到登錄頁(yè)面
思路解析:A賬號(hào)在A電腦上登錄后,把SESSION ID寫(xiě)入TXT文件,每次訪問(wèn)頁(yè)面時(shí),都做一次校驗(yàn)(比較txt文件的值是否和當(dāng)前登錄的session_id的值相同)
實(shí)例1、入口與校驗(yàn)(index.php)
?phpsession_start();$uid = 10;if(is_login($uid)){ header( location:loginSuccess.php }else{ $getLogSessionId = file_get_contents( session_log/ .$uid. .txt if($getLogSessionId){ echo 已在其他地方登錄,請(qǐng)重新登錄 echo br echo 5秒后跳轉(zhuǎn)到登錄頁(yè)面! header( refresh:5;url=login.php }else{ echo 第一次登錄... echo br echo 3秒鐘后跳轉(zhuǎn)到登錄頁(yè)面! header( refresh:3;url=login.php * 通過(guò)登錄時(shí)寫(xiě)入文件session_id和當(dāng)前登錄設(shè)備后生成的session_id進(jìn)行比較,相同則是同一臺(tái)設(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)
?phpsession_start();echo 登錄中.... echo br $uid = 10;file_put_contents( session_log/ .$uid. .txt ,session_id());echo 登錄完成
3、登錄成功(loginSuccess.php)
?phpecho 我登錄成功了!
4、保存sessionId文件夾(session_log),測(cè)試代碼,需要手動(dòng)建一個(gè)或者賦予自動(dòng)生成文件的權(quán)限
相關(guān)推薦:
php bootstrap實(shí)現(xiàn)簡(jiǎn)單登錄,phpbootstrap登錄
php模擬登錄 php curl模擬登錄教程大全以上就是PHP實(shí)現(xiàn)會(huì)員賬號(hào)只能唯一登錄的代碼實(shí)例的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選