вопрос проверки формы - PullRequest
0 голосов
/ 17 июня 2011

У меня есть вопрос о проверке формы в CodeIgniter:

<? form_open('user/check_login' ?>
  <fieldset id="login_fields">
     <label for="login">Login</label>
          <input name="login" type="text" class="textfield" id="login" />
     <label for="password">Password</label>
          <input name="password" type="password" class="textfield" id="password" />
     <input type="submit" name="Submit" value="Login" />
  </fieldset>
</form>

Как вы можете видеть выше, форма передается методу check_login в пользовательском контроллере.

После определенного количества неудачных попыток входа в систему я бы включил в форму еще одно поле ввода (капчу). Например

<? if ($attempts > 3) { ?>
<label for="captcha">captcha</label>
          <input name="captcha" type="text" class="textfield" id="captcha" />
<? } ?>

Но проблема в том, что когда добавляется дополнительное поле, а затем отправляется форма, как метод check_login узнает, что это поле времени было добавлено в форму, и это нельзя оставить пустым.

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 июня 2011

Вам нужно либо использовать библиотеку CI или массив PHP $ _SESSION .Лично я бы использовал flash_data в сеансе lib.

$this->load->library('session');
$attempts = $this->session->flashdata('fails');
if(!is_numeric($attempts)) $attempts = 0;
else $attempts++;
$this->session->set_flashdata('fails', $attempts);

В этот момент вы можете просто передать $ попытки для просмотра, и у вас все получится.

0 голосов
/ 17 июня 2011

isset ($ _POST ['captcha'])

или

$ this-> input-> post ('captcha') не равно FALSE

, еслиесли выполнено любое из этих условий, добавьте правило в форму form_validation.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...