Discuz!X1.5優化「密碼錯誤次數過多,請 15 分鐘後從新登錄」[轉]

 你們在玩論壇的時候,特別是長時間未登陸的論壇,可能在輸入錯誤密碼達到必定次數後提示:「密碼錯誤次數過多,請 15 分鐘後從新登錄」,這下可頭大了,等15分後,心都涼了,因此這個用戶體驗並很差!php

在discuz!X1.5中,能夠作以下修改來改善這個用戶體驗,這裏嘗試修改成30秒!ide

discuz!X1.5:依次打開 source - function目錄下的  function_member.php文件,注:discuz!X1.0須要修改:  function_login.phpfetch

搜索並替換其中的2處900爲30,一處901爲31便可!以下紅色部分爲修改後!spa

 

引用內容
function logincheck() { 
global $_G; 
$return = 0; 
$login = DB::fetch_first("SELECT count, lastupdate FROM ".DB::table('common_failedlogin')." WHERE ip='$_G[clientip]'"); 
$return = (!$login || (TIMESTAMP - $login['lastupdate'] >  30)) ? 4 : max(0, 5 - $login['count']); 

if(!$login) { 
DB::query("REPLACE INTO ".DB::table('common_failedlogin')." (ip, count, lastupdate) VALUES ('$_G[clientip]', '1', '$_G[timestamp]')"); 
} elseif(TIMESTAMP - $login['lastupdate'] >  30) { 
DB::query("REPLACE INTO ".DB::table('common_failedlogin')." (ip, count, lastupdate) VALUES ('$_G[clientip]', '1', '$_G[timestamp]')"); 
DB::query("DELETE FROM ".DB::table('common_failedlogin')." WHERE lastupdate<$_G[timestamp]- 31", 'UNBUFFERED'); 

return $return; 
}

 

而後就是修改下前臺提示:ip

依次打開 source - language目錄下的  lang_message.php文件,修改成 'login_strike' => '密碼錯誤次數過多,請 30 秒後從新登陸'!it

若是已經被鎖定,能夠用phpmyadmin刪除數據表'pre_common_failedlogin'中的參數,而後從新登陸便可!io

在內網架設論壇的你必定知道這個修改是多麼的人性!table

相關文章
相關標籤/搜索