在我的网站的登录页面中,用户如果要输入用户区域,必须正确输入用户名,密码和验证码。但是没有人,首先,我,不喜欢验证码。另一方面,您知道网络安全和垃圾邮件事实。

所以在第一次,第二次和第三次中,我不想显示验证码,但是我想显示超过3个错误的提交。但是我对如何实现这一点一无所知!我试过了

$_SESSION['wrong_submit'] = 1;
$_SESSION['wrong_submit']++;

当然不是。请您能帮我,我该怎么办?

最佳答案

在用户表中创建一个名为login_attempts的列。该列在每次失败的登录尝试时增加,并在成功登录时重置。

基本结构如下:

+-----------+------+------+
|  user_id  |  ip  | date |
+-----------+------+------+

要检查登录尝试的次数,可以使用如下查询:
SELECT count(ip) AS failed_attempts
FROM login_attempts
WHERE ip = $ip
  AND date < (NOW - INTERVAL 24 HOUR)

现在,在您的PHP代码中,您可以检查该值是否大于或等于3,如果是,则显示验证码:
if ($data['failed_attempts'] >= 3) {
    // display captcha...
}

关于php - 如果超过3个错误提交,请显示验证码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21795193/

10-12 02:19