PHP检查登录尝试30分钟
我将日期(上次尝试)、尝试计数器和ip插入mysql数据库,以便在我的登录页面中控制登录尝试,如下所示:PHP检查登录尝试30分钟,php,mysql,Php,Mysql,我将日期(上次尝试)、尝试计数器和ip插入mysql数据库,以便在我的登录页面中控制登录尝试,如下所示: | id | ip | date | attempts | | 1 | 192.168.1.2 | 1412932824 | 5 | 现在在登录页面中,如果用户尝试次数=5,我需要删除我的表单30分钟 霉菌代码: $checkip = Access::FETCH("SELECT * FROM " . LOGIN_ATTEMPTS .
| id | ip | date | attempts |
| 1 | 192.168.1.2 | 1412932824 | 5 |
现在在登录页面中,如果用户尝试次数=5,我需要删除我的表单30分钟
霉菌代码:
$checkip = Access::FETCH("SELECT * FROM " . LOGIN_ATTEMPTS . "
WHERE
ip = ? AND panel = ? ", _IS_GET_IP_ADDRESS_() , '1');
if (count($checkip > 0))
{
$time = new DateTime();
$time->setTimestamp($checkip[0]['date']);
$time->modify('+30 minutes');
$timeattempts = $time->format('U');
if ($checkip[0]['attempts'] <= 5 && $timeattempts < time())
{
// FORM SHOW
}
else
{
// SHOW ONLY ERROR
}
}
$checkip=Access::FETCH(“选择*自”。登录尝试次数。”
哪里
ip=?和panel=?“,_是_GET_ip_ADDRESS_uu(),'1');
如果(计数($checkip>0))
{
$time=新的日期时间();
$time->setTimestamp($checkip[0]['date']);
$time->modify(“+30分钟”);
$timeattempts=$time->format('U');
如果($checkip[0]['truments']time()。
如何修复我的代码以防止登录尝试
注意:在操作i中,更新日期(上次尝试)和每次登录尝试的尝试次数。您只需在查询中执行此操作:
$timestamp = strtotime("-30 minutes");
$checkip = Access::FETCH("SELECT * FROM " . LOGIN_ATTEMPTS . "
WHERE
ip = ? AND panel = ? AND attempts >= ? AND date <= ? ",
_IS_GET_IP_ADDRESS_() , '1', 5, $timestamp);
if (empty($checkip))
{
// FORM SHOW
}
else
{
// SHOW ONLY ERROR
}
$timestamp=strottime(“-30分钟”);
$checkip=Access::FETCH(“选择*自”。登录尝试次数。”
哪里
ip=?和panel=?和attempts>=?以及您首先需要显示的日期,以及您在数据库中插入/更新数据的方式和时间。此外,不清楚date列中的这个数字实际上代表什么。@hakre:i更新每个现有ip的日期和尝试次数+1。您用什么更新日期?@hakre:withtime()
用于最后一次登录。您是否尝试用| |
替换&&
?我将ldo应答更改为日期>=?这是我的问题。