Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.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 登录尝试超时_Php - Fatal编程技术网

Php 登录尝试超时

Php 登录尝试超时,php,Php,我有一个票务服务台,我将登录次数限制为10次。10次后,用户无法再次登录!我想为登录尝试设置超时 因此,如果有人尝试登录,并且错误登录了10次,那么只有5到10分钟才能从该IP或该用户名再次登录。我有一个config.php文件,我有: define('LOGIN_TRIES',10); //and in my login.php page i have this: //limit login tries. if (isset ( $_SESSION['hit'] ) )

我有一个票务服务台,我将登录次数限制为10次。10次后,用户无法再次登录!我想为登录尝试设置超时

因此,如果有人尝试登录,并且错误登录了10次,那么只有5到10分钟才能从该IP或该用户名再次登录。我有一个
config.php
文件,我有:

 define('LOGIN_TRIES',10);
   //and in my login.php page i have this:
    //limit login tries.
    if (isset ( $_SESSION['hit'] ) ) {
    $_SESSION['hit'] += 1;
    if ($_SESSION['hit'] > LOGIN_TRIES){
        echo "<p><i class='fa fa-lock fa-2x pull-left'></i>Access Locked.</p>";
        include("includes/footer.php");
        exit;
        }
    }else{
    $_SESSION['hit'] = 0;
    }
define('LOGIN_TRIES',10);
//在我的login.php页面中,我有以下内容:
//限制登录尝试次数。
如果(isset($_会话['hit'])){
$\会话['hit']+=1;
如果($\会话['hit']>登录\u尝试){
回显“访问锁定。

”; 包括(“includes/footer.php”); 出口 } }否则{ $\u会话['hit']=0; }
您正在防范暴力攻击。我发现下面的链接很有用。使用数据库表记录登录尝试及其时间、用户名或电子邮件地址,以及您的IP地址(在下面链接的示例中未执行)

见第3节-蛮力功能


因此,本例中的查询选择特定时间范围内的所有实例(可能,因为您记录了每次登录尝试的时间)

当然您可以改进此代码,但基本逻辑是在用户被锁定时设置时间戳,然后检查锁定是否超时

如果是,则重置
点击
0

if (isset ( $_SESSION['hit'] ) ) {

    /* If user is locked check for timeout, set to 10min */
    if( isset($_SESSION['locked_time']) && 
      ($_SESSION['locked_time']+600 ) <= time()) ){
         $_SESSION['hit'] = 0;
         unset($_SESSION['locked_time']);
    }

    $_SESSION['hit'] += 1;

    if ($_SESSION['hit'] > LOGIN_TRIES){
        $_SESSION['locked_time'] = time(); // set last locked time here
        echo "<p><i class='fa fa-lock fa-2x pull-left'></i>Access Locked.</p>";
        include("includes/footer.php");
        exit;
    }
}

else{
   $_SESSION['hit'] = 0;
}
if(isset($\u会话['hit'])){
/*如果用户被锁定,请检查超时,设置为10分钟*/
如果(isset($_会话['locked_time'])&&
($_会话['locked_time']+600)登录尝试){
$\u SESSION['locked\u time']=time();//在此处设置上次锁定的时间
回显“访问锁定。

”; 包括(“includes/footer.php”); 出口 } } 否则{ $\u会话['hit']=0; }
好的,但这里的问题是什么?问题是如何设置登录尝试的超时。因为如果有人犯了10次错误,他就永远无法从那个浏览器再次登录。那么?由于您使用会话来应用此限制,黑客所要做的就是清除他们的cookie并删除此限制。您需要通过IP地址执行此操作。它对我不起作用。我把它放在我的
index.php
文件中,其中有我的登录表单,而页面没有opening@Aria您必须根据自己的需要修改代码,我不知道您的其他代码。具体在哪里修改?@Aria请尝试自己调试代码,不要只是粘贴代码并期望它工作。我不是php的专业人士,你能告诉我在哪里换车吗,伙计?