我试图为注册的用户制作一个简单的数学验证码。 但问题是,它总是返回消息无效的验证码。 对此有所了解并且不确定是什么错误。
<?php
namespace forum;
require_once 'core/database.php';
require_once 'classes/Redirect.php';
Class Captcha{
public static function Captcha($sol){
$random = rand(1, 15);
if (empty($sol)) {
return 'What is ' . $random . ' + ' . $random . ' ';
}
$answer = $random + $random;
if ($sol != $answer)
{
return false;
} else {
return true;
}
}
}
答案 0 :(得分:0)
您可以尝试以下解决方案:
Class Captcha
{
public static function Captcha($sol = null)
{
$random = rand(1, 15);
if (empty($sol))
{
$answer = $random + $random;
$_SESSION['captchaAnswer'] = $answer;
return 'What is ' . $random . ' + ' . $random . ' ';
}
if ($sol == $_SESSION['captchaAnswer'])
{
return true;
}
return false;
}
}
这会将答案存储在会话中,并将针对该解决方案的答案进行检查。这不是最好的方法,你可以尝试使用更安全的东西,比如ReCaptcha。