在tp中實現單個使用者禁止重複登入

2021-08-02 19:57:00 字數 968 閱讀 1551

原理:

許可權驗證的時候一定要判斷資料庫寫入session_id是不是和$_session裡面的session_id是不是一致,如果不一致就退出,這個防止同乙個賬戶被多個人同時登陸的實現方法就是基於這個session_id

一定要設定session的存活時間,和session關掉頁面就session消除

如果有其他人登陸的時候,會寫入新的session_id,這樣舊的使用者就會被許可權驗證不通過,但是不能做到實時效果,這樣就擠掉了舊使用者,這裡有個缺陷,就是每次驗證許可權的時候就需要查詢資料庫,如果可以吧這個資料放在redis就比較好

其實其他的驗證方法,也類似使用這種方法,有個驗證的憑證,只不過這種方法需要查詢資料庫,但是放在redis之後就比較好

或者統一管理session的時候,比如放在資料庫就更好了,記住吧session_id也存入資料庫,或者放在memcash,redis就比較方便,比如在redis進行管理的時候,就可以直接更新掉存在session_id

首先設計表:

1 id int(11) auto_increment

2 username varchar(20) utf8_general_ci

3 password varchar(20) utf8_general_ci

4 ip varchar(20) utf8_general_ci

5 session_id varchar(100) utf8_general_ci

6 login_time int(20)

實現:

public function aa()else

//開始驗證 --防止同乙個使用者重複登入

$res = m("onlyuser")->where("name = '$uname' and pwd = '$upwd'")->find();

if($res) else else

}}else

}

AJAX回傳過程中禁止使用者重複提交

最近碰到乙個問題 頁面使用了ajax,非jquery,用的是微軟的scriptmanager和updateprogress。如何在資料回傳過程中禁止使用者重複提交?即使用者點了提交按鈕後,按鈕不能用,等到資料回傳後,按鈕狀態自動變為可用!到微軟的論壇上去問了,高手給出了答案。經測試,下面的方法可行!...

AJAX回傳過程中禁止使用者重複提交

最近碰到乙個問題 頁面使用了ajax,非jquery,用的是微軟的scriptmanager和updateprogress。如何在資料回傳過程中禁止使用者重複提交?即使用者點了提交按鈕後,按鈕不能用,等到資料回傳後,按鈕狀態自動變為可用!到微軟的論壇上去問了,高手給出了答案。經測試,下面的方法可行!...

如何禁止使用者在文字輸入框中輸入數字

要想禁止使用者在文字框中輸入數字,首先要判斷使用者是否輸入的是數字,如果是數字的話,怎麼禁止呢?這裡,我巧妙地利用了文字框的唯讀屬性 如果是數字,將該屬性設定為真,使用者的輸入就無效了。在釋放按鍵時,再將該屬性設定為假,接受使用者的下一次輸入。相關 如下 private void txttest k...