7.0、7.2已經可以使用(7.5應該放到對應代碼應該也可以用),更多判斷限制可以自行添加上去,如果有不足之處,還請大神多多指點。 1、后臺-系統設置-執行SQL語句,執行以下sql語句即可 CREATE TABLE IF NOT EXISTS `phome_member_log` ( `id` int(11) NOT NULL auto_increment, `userid` int(11) NOT NULL, `username` varchar(255) NOT NULL, `logintime` int(10) NOT NULL, `loginip` varchar(32) NOT NULL, `status` smallint(1) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
2、在/e/class/connect.php函數表中加入函數 //用戶登錄日志(包含第一次注冊時候的默認登錄、成功登錄、退出、賬號不存在、密碼錯誤、賬號為空、密碼為空、賬號未通過審核),1成功登錄、2退出網站、3注冊登錄、4賬號密碼錯誤、5賬號不存在、6賬號未通過審核、7賬號或密碼為空、8驗證碼錯誤 function insert_member_log($userid,$username,$logintime,$loginip,$status,$password){ global $empire,$dbtbpre; $password=RepPostVar($password); if($status=='1' || $status=='3') { $password=''; }else if($status=='4' || $status=='5'){ $password=md5($password); } $userid=RepPostVar($userid); $username=RepPostVar($username); $logintime=RepPostVar($logintime); $loginip=RepPostVar($loginip); $status=RepPostVar($status); $password=RepPostVar($password); $sql=$empire->query("insert into {$dbtbpre}member_log(userid,username,logintime,loginip,status,password) values('$userid','$username','$logintime','$loginip','$status','$password');"); } //用戶登錄次數錯誤限制 function member_login_error($username,$loginip){ global $empire,$dbtbpre; $username=RepPostVar($username); $loginip=RepPostVar($loginip); $start_time=strtotime(date("Y-m-d H:i:s", strtotime("-10 minute"))); $end_time=time(); $username_login=$empire->fetch1("select count(*) as total from {$dbtbpre}member_log where username='$username' and status in (4,5,6,7) and logintime between '$start_time' and '$end_time' limit 1"); $ip_login=$empire->fetch1("select count(*) as total from {$dbtbpre}member_log where loginip='$loginip' and status in (4,5,6,7) and logintime between '$start_time' and '$end_time' limit 1"); $bankurl = 'http://www.baidu.com'; if($username_login['total']>='5'){ printerror2('親,你在10分鐘內賬號或密碼錯誤達到5次,請稍后再來嘗試登錄!',$bankurl); } if($ip_login['total']>='5'){ printerror2('親,你的ip('.$loginip.')在10分鐘內輸入賬號或密碼錯誤達到5次,請稍后再來嘗試登錄!',$bankurl); } }