php禁止重複登入的方法:1、取得目前開啟瀏覽器session的id;2、判斷資料庫裡的session_id與目前session_id是否相等,如果不相等則需要跳到重新登入。
本文操作環境:Windows7系統、PHP7.1版,DELL G3電腦
php防止使用者重複登入
#先來理解session的幾個設定:
ini_set('session.auto_start',0);
設定關閉session的自動啟動
ini_set('session.cookie_lifetime',0);
設定session在瀏覽器關閉時失效,session預設是這樣子的,無需在設定
ini_set('session.gc_maxlifetime',3600);
設定session在瀏覽器未關閉時的持續存活時間
大概知道上面的幾個設置,那麼我們開始理解下今天的內容啦。每當使用者登出帳號時候,他開啟瀏覽器就會自動產生一個session_id(有效時間內是唯一的),然後我們把這個唯一的id存入到user表的去(每登入一次就更新一次當前帳號user表中的session_id的值)。這樣,在登入後的所有介面都需要判斷,目前瀏覽器的session_id()與資料庫的user表的session_id是否一致,如果不一致,則顯示目前帳號已上線,你需要再次登入再可以頂掉他的登入。 (就是每次只能一個使用者登錄,後面登入的使用者會擠掉前面登入該帳號的使用者)
詳細,我們看下程式碼吧:(其他無關本次推文程式碼的程式碼,我就不細說啦)
第一個框:取得目前開啟瀏覽器session的id,為下面插入、更新資料庫裡唯一的session_id做準備
第二個方塊:判斷,資料庫裡的session_id與目前session_id是否相等,若不相等,則更新目前資料庫裡的session_id,若相等,直接傳回3到前端ajax
在index.php介面下,這個框,表示判斷當前session_id()與資料庫的session_id是否相等,如果不相等,則表示目前帳號已經有登錄,且session_id不相等,需要跳轉重新登入.
推薦學習:《PHP影片教學》
以上是php怎麼禁止重複登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!