mewebstudio / captcha验证错误验证码

问题描述 投票:1回答:1

我知道这个话题已经存在,但没人能解决我的问题。 我正在使用库mewebstudio/captcha,一切都很好,但是当我提交时,它总是告诉我验证码是错误的。 我的验证规则:

'captcha' => 'required|captcha'

在我的HTML格式:

<?= captcha_img(); ?>
<input type="text" name="captcha">

我使用的是php5.6,Laravel 5.1和mews / captcha 2.2

php laravel laravel-5 laravel-5.1
1个回答
0
投票

我找到了一个解决方案,希望将来能帮到某个人。 好吧,这是库本身的一个错误,他们删除会话密钥而不检查结果:

public function check($value)
{
    if ( ! $this->session->has('captcha'))
    {
        return false;
    }

    $key = $this->session->get('captcha.key');
    $sensitive = $this->session->get('captcha.sensitive');

    if ( ! $sensitive)
    {
        $value = $this->str->lower($value);
    }

    $this->session->remove('captcha');

    return $this->hasher->check($value, $key);
}

所以我的解决方案是这样的(你需要扩展类,重写方法并将类绑定到新的实现):

public function check($value)
{
    if ( ! $this->session->has('captcha'))
    {
        return false;
    }

    $key = $this->session->get('captcha.key');
    $sensitive = $this->session->get('captcha.sensitive');

    if ( ! $sensitive)
    {
        $value = $this->str->lower($value);
    }

    $isNotARobot = $this->hasher->check($value, $key);dd($isNotARobot);

    if ($isNotARobot) {
        $this->session->remove('captcha');
    }
    return $isNotARobot;
}
© www.soinside.com 2019 - 2024. All rights reserved.