在我的站点的登录页面中,用户必须正确输入用户名、密码和验证码才能进入用户区。但是没有人,首先是我,不喜欢验证码。另一方面,您知道,网络安全和垃圾邮件事实。
所以在第一次、第二次和第三次我不想显示验证码,但超过 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/