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