PHP 数学验证码未通过

PHP Math captcha not passing

我正在尝试为用户注册时制作一个简单的数学验证码。 但问题是它总是返回无效验证码的消息。 新手,不确定哪里出了问题。

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

        }

    }

}

您可以尝试以下解决方案:

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。