php - pc端 限制使用者登陸次數!
怪我咯
怪我咯 2017-05-31 10:33:27
0
4
859

我是將登陸的錯誤次數和時間存到session,當達到最大錯誤次數時將無法登錄,可是將cookie清空後仍可登入。請問該怎麼解決?或有其它的方式限制登入次數嗎?謝謝!

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(4)
我想大声告诉你

資料庫加個欄位,超過次數鎖定帳號...

给我你的怀抱

用memcache 或 redis 做快取控制

$key = 登入帳號

$value = 登入失敗次數

$this->set($key,$value);

小葫芦

用ip和HTTP_USER_AGENT 來判斷是否同一使用者

小葫芦

像你這種情況,只能透過全域快取來處理了。如果你要控制某個使用者名稱的登入次數,那麼就
1.針對keyvalue快取
統一資料結構key=value => 使用者名稱={'登入次數':1},接下來無論用redis、memcache、mysql(建cache表,列[key value],索引hash key)
直接$userinfo = $cacheobj->get('用戶名')取得用戶信息,判斷登入次數,自增登入次數後$cacheobj->set('使用者名稱', $userinfo)回寫

2.納入到資料庫登入資訊表結構
給mysql使用者登入表新增登入次數列,然後就是呼叫sql,獲取,判斷,自增,更新就歐了

如果要含時間緯度,那麼

1.針對keyvalue快取
資料結構更新為使用者名稱={'登入次數':1, '逾時時間':時間戳},判斷再加時間緯度的判斷,超時將登入次數置為0

2.針對非mysql的keyvalue快取(redis、memcache)
直接$cacheobj->set('用戶名', '登入次數', 逾時時間)

3.納入到資料庫登入資訊表結構
這樣子的話就再加一列超時時間

實現的方法無數種,主要看實際場景和資源。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板