PHP Math captcha没有通过

时间:2018-04-07 20:51:18

标签: php captcha

我试图为注册的用户制作一个简单的数学验证码。 但问题是,它总是返回消息无效的验证码。 对此有所了解并且不确定是什么错误。

<?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;

        }

    }

}

1 个答案:

答案 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。