到期自動解禁功能實現
朋友們..想請教一個問題...假如我封鎖一個使用者一天....一天到期後,自動解禁功能通常是怎麼實現的呢?..
------解決方案--------------------
指令碼定期執行,把到期解禁的使用者解禁
------解決方案--------------------
引用:
Quote: 引用:
解禁的前提是使用者要登入,如果使用者因封鎖不再登入了,你怎麼解也都沒有用
封鎖的資訊是與使用者關聯的,只要在使用者登入時檢查一下就可以了
如需要修改狀態,也在此時
多謝版主大神,,我想實現的是,封鎖該使用者發言功能..但是其他比如瀏覽等功能照常...
我這樣設想:
正常使用者`狀態欄位`都是1...
禁言使用者 `狀態欄位` 設為time()+禁言時間...
每次許可權判斷都要看一下`狀態欄位`值是否小於time()...
但是這樣 sql查詢時.....但是每次判斷是否小於time() 肯定沒有判斷是否為1來的快吧...
同意在登陸時做檢查。
1.封鎖使用者最多佔網站整體使用者的20%(如果封鎖使用者到達80%,那這個論壇也就快關了),沒必要用80%的時間做各種各樣的設計和開發(諸如自動執行指令碼之類,這會給你增加維護成本);
2.封鎖使用者並非網站的典型使用者,即使他登陸時,sql查詢慢點,有何不可?別本末倒置;
------解決方案--------------------
引用:
Quote: 引用:
解禁的前提是使用者要登入,如果使用者因封鎖不再登入了,你怎麼解也都沒有用
封鎖的資訊是與使用者關聯的,只要在使用者登入時檢查一下就可以了
如需要修改狀態,也在此時
多謝版主大神,,我想實現的是,封鎖該使用者發言功能..但是其他比如瀏覽等功能照常...
我這樣設想:
正常使用者`狀態欄位`都是1...
禁言使用者 `狀態欄位` 設為time()+禁言時間...
每次許可權判斷都要看一下`狀態欄位`值是否小於time()...
但是這樣 sql查詢時.....但是每次判斷是否小於time() 肯定沒有判斷是否為1來的快吧...
為什麼要每次SQL查詢來判斷呢?你可以在登陸的時候就把資料讀出來,跟登陸狀態放一起(一般是Session或者Cookie),直接與這裡的資料對比就行了。