Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP检查登录尝试30分钟_Php_Mysql - Fatal编程技术网

PHP检查登录尝试30分钟

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 .

我将日期(上次尝试)、尝试计数器和ip插入mysql数据库,以便在我的登录页面中控制登录尝试,如下所示:

| 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:with
time()
用于最后一次登录。您是否尝试用
| |
替换
&&
?我将ldo应答更改为日期>=?这是我的问题。