Php 如何在尝试3次登录后阻止用户?
如何在尝试3次登录后阻止用户 这是我的密码:Php 如何在尝试3次登录后阻止用户?,php,mysql,session,login,controller,Php,Mysql,Session,Login,Controller,如何在尝试3次登录后阻止用户 这是我的密码: session_start(); /************Connexion************/ if(isset($_POST['cnx'])){ require_once('../config.php'); $db = new DBSTOCK(); $cnx = $db->connect(); $user=$_POST['user']; $pass=$_POST['
session_start();
/************Connexion************/
if(isset($_POST['cnx'])){
require_once('../config.php');
$db = new DBSTOCK();
$cnx = $db->connect();
$user=$_POST['user'];
$pass=$_POST['pass'];
// To protect from MySQL injection for Security purpose
$user = strip_tags($user);
$pass = strip_tags($pass);
$user = stripslashes($user);
$pass = stripslashes($pass);
$user = mysqli_real_escape_string($cnx,$user);
$pass = mysqli_real_escape_string($cnx,$pass);
$q=mysqli_query($cnx,"select * from admin where user='".$user."'");
$row = mysqli_fetch_array($q); //or die(mysqli_error($con));
$pw = $row['pass'];//hashed password in database
$username = $row['user'];
if($user==$username && password_verify($pass, $pw)) {
$_SESSION["user"]=$user;
header("Location: ../view/accueil.php");
}
else{
header("Location: ../index.php?failed=0");
}}
/************Deconnexion************/
if(isset($_GET['decnx'])){
session_destroy();
session_unset();
header("Location: ../index.php");
}
我可以向代码中添加任何脚本建议,以便在连续3次登录尝试失败后阻止用户10分钟?将以下两列添加到行中:
- 最后一次尝试作为日期时间
- 尝试将u计数为整数
另外,您现在还可以知道用户最后一次登录的时间,这对于查找未使用的帐户非常有用。有很多方法可以做到这一点。如果要阻止设备,则可以创建10分钟的cookie,并设置一个条件,如果用户名匹配,则不会访问数据库进行登录
或者,如果您想为该用户阻止任何设备,则必须保持用户状态,连续三次失败尝试将更改用户状态和被阻止的时间。但这一次,您必须检查每次登录尝试之前的阻止时间是否为10分钟。请看一看,您最好使用服务器端锁定,而不是客户端(使用cookie),因为用户可以修改cookie。特拉维索的答案非常简单,可以说更安全你能给我一个建议吗example@baktetemiloud我只是明确地解释了该做什么,我不会为你做你的工作,如果你不能将概念转化为代码,你永远也学不到。我昨晚正在研究这个解决方案。这个解决方案比cookie好,谢谢you@baktetemiloud用户可以编辑他们的cookie,不要把它们用于任何重要的事情