2015-03-08 293 views
-2

我正在PHP中开发应用程序。它有一个登录部分。我想知道如果用户输入4次错误的密码,我怎么能阻止用户输入(可以说)15个登录账户的薄荷糖。我怎么能阻止登录从使用PHP MySql的特定IP多次登录尝试后阻止用户登录

任何人都可以有脚本或引荐我任何教程。谢谢

+0

你会想用'$ _ SERVER [“REMOTE_ADDR”]来获得用户的IP地址;',然后你想放的是和当前的时间戳成一个数据库。然后,当有人登录时,你会检查用户的IP地址是否在数据库中,并说'WHERE $ timeNow <“$ timeThen”' – 2015-03-08 16:54:49

回答

2

如果登录失败的x次,你会$ loginFail设置为1的例子。

然后输入这个信息到一个新的数据库。

编辑:使用PDO

if($loginFail == 1){ 

    $ip = $_SERVER['REMOTE_ADDR']; 

    $date = new DateTime(); 
    $fdate = $date->format('Y-m-d H:i:s'); 

    $sql = "INSERT INTO loginTracker (ipaddress,time) VALUES (:ipaddress,:time)"; 
    $q = $pdo->prepare($sql); 
    $q->execute(array(':time'=>$fdate, 
         ':ipaddress'=>$ip)); 

    }else{ 
     $loginFail = 0; 
    } 

然后,当用户试图登录时,你会比较上述数据库的时间戳和ip地址,与用户的IP地址和当前时间戳

+0

**没有** mysql_ *函数,它们是[**正式弃用的**](https://wiki.php.net/rfc/mysql_deprecation),**不再维护**,并将[**移除**](http:// php.net/manual/en/function.mysql-connect.php#warning)。您应该使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)更新您的代码,以确保您的项目未来的功能。 – DarkBee 2015-03-08 17:22:34

+1

很好,我99%的时间使用pdo。我在这个例子中使用了mysql,因为我注意到大多数php新手使用mysql – 2015-03-08 17:45:50

+1

:-)更好的是不要发布过时的代码,但是我修正了我看到的问题。 – DarkBee 2015-03-08 18:54:59