0

我试图弄清楚在 X 多次尝试登录失败后如何锁定用户的帐户。我知道我需要一个计数器来记录失败的尝试次数。到目前为止,这是我用于此任务的伪代码:

    int i=0;
    when login fails{
      i++; }
    if(i == 3) {
      lock account for 3 minutes; }

这是我的两个问题:

-我如何锁定用户的帐户?

-如何将用户锁定 3 分钟,不允许他们刷新页面并再尝试 3 次?

4

2 回答 2

2

我建议您将阻止用户的时间存储在users当前用户的数据库表中。

然后,在加载您网站上的任何页面页面时,您应该检查数据库中的此字段并将其与当前时间进行比较。如果差异大于 3 分钟,那么您可以从数据库中删除“已阻止用户”标志并将用户设置为未阻止。

于 2013-07-03T09:38:51.180 回答
0

您可以为此使用会话:

session_start();

if (!isset($_SESSION['LOGIN_ATTEMPTS'], $_SESSION['LAST_LOGIN_ATTEMPT'])){
   $_SESSION['LOGIN_ATTEMPTS'] = 0 ;
   $_SESSION['LAST_LOGIN_ATTEMPT'] = null ;
}

if (isset($_POST['login'])){
  $_SESSION['LOGIN_ATTEMPTS'] += 1 ;
  $_SESSION['LAST_LOGIN_ATTEMPT'] = time("now") ;
}
于 2013-07-03T09:28:56.197 回答