Капча после определенного ответа

338
07 июня 2017, 04:55

У меня есть форма входа на сайте, когда пользователь ошибается при входе в личный кабинет, например, 5 раз с вводом пароля или email, выскакивает капча, при чем запрос к базе данных отправляется с помощью ajax, то есть при определенном ответе (когда лимит попыток исчерпан) в DOM добавляется некий div с капчей, вот тоже вставляю я div перед class="yes", правильно ли это, так как скорее всего, если удалить этот класс ничего не вставится.

А как можно проверку этой капчи засунуть в php код после ее добавления? Так как, если сделать всегда обязательной проверку на капчу уже в php коде, то при ее отсутствии в DOM, будет выходить ошибка, что капча не заполнена.

Например, ниже код не пойдет:

 $checkcaptcha = trim($_POST['checkcaptcha']);
 if( $checkcaptcha != $_SESSION['captcha']) $errors .= '<li><strong>Неверно введен проверочный код</strong></li>';

Что-то вроде, если пришли постом какие-то данные, то капча есть, иначе ее нет - не пойдут, это можно все подделать.

Например код ниже, тоже не пойдет:

if($_POST['checkcaptcha']){
   $checkcaptcha = trim($_POST['checkcaptcha']);
   if( $checkcaptcha != $_SESSION['captcha']) $errors .= '<li><strong>Неверно введен проверочный код</strong></li>';
}

Не могу понять, как реализовать это программно, после ответа ajax. Кто знает, подскажите, пожалуйста. Все уже основное написал, а на этом просто застрял:(

Answer 1

Создайте в сессии переменную

incorrect-attemts

код примет примерно такой вид:

if ($_SESSION['incorrect-attempts'] <= 5) {
  // не проверяем капчу
  // если вход не удался не забываем инкрементировать переменную
} else {
  // проверяем капчу
}

Это очень примерный вид - вреальности стоит проверять есть ли такая переменная, не плодить дубли кода и прочее. Это исключительно идея реализации, ни в коем случае не готовое решение

READ ALSO
Как организовать поиск по csv файлу php?

Как организовать поиск по csv файлу php?

Подскажите, пожалуйста, куда двигаться, или что можно почитать по этой теме

283
Удалить файлы в папке cron php

Удалить файлы в папке cron php

Нужно каждые 6 часов чистить заданную папку от файловНигде не могу найти решение

296
Готовая админка в yii2 [требует правки]

Готовая админка в yii2 [требует правки]

Есть ли где нибудь готовая панель администратора в yii2, что бы шла как шаблон с модулями, где просто остается натянуть свой html шаблон

499