mewebstudio / captcha неверный код проверки - PullRequest
0 голосов
/ 11 декабря 2018

Я знаю, что эта тема существует, но никто не может решить мою проблему.
Я использую библиотеку mewebstudio/captcha, все в порядке, но когда я отправляю сообщение, оно всегда говорит мне, что капча неверна.

Мои правила проверки:

'captcha' => 'required|captcha'

В моей HTML-форме:

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



Я использую php5.6, Laravel 5.1 и mews/ капча 2,2

1 Ответ

0 голосов
/ 12 декабря 2018

Я нашел решение, надеюсь, это поможет кому-то в будущем.
Ну, это ошибка в самой библиотеке, когда они удаляют ключ сеанса, не проверяя результат:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...