2012-03-29 3 views
0

Я пытаюсь выяснить, как справиться с этой ситуацией. У меня есть следующая строка для входа в систему пользователя, однако в этой ситуации параметр post post не может быть установлен при отправке формы, поэтому мне все равно хотелось бы отправить 0 в качестве значения этой функции.Запомнить меня cookie

if ($this->kowauth->login($this->input->post('username'), $this->input->post('password'), 
          $this->input->post('remember'))) {} 

Вот элемент формы:

<?php 
if(isset($_COOKIE['xtrcook'])) 
{ 
    echo form_label((form_checkbox('remember', '1', TRUE)) . 'Remember Me!', 'remember'); 
} 
else 
{ 
    echo form_label((form_checkbox('remember', '1', FALSE)) . 'Remember Me!', 'remember'); 
} 
?> 

Хотя drew010 был хороший ответ его не маршрут, я хочу пойти с этим, так что я прошу, если кто-нибудь еще есть какие-нибудь идеи?

+0

Вы должны изобрести какую-то сложную проблему, которая не существует. Во-первых, '$ this-> input-> post()' не будет вызывать ошибку, если данных там нет. Для двоих, что @drew010 сказал идеально подходит для альтернативы (проверка $ _POST вручную). Для трех флажков имеет значение SET/UNSET. Поэтому даже что-то простое, как 'empty ($ _ POST ['remember'])' будет работать нормально. – Xeoncross

ответ

0

Ваш вопрос не совсем ясен. Если параметр «запомнить» не установлен в 1, вы знаете, что ваш пользователь не хочет, чтобы его запоминали, поэтому вы не продлеваете жизнь своего файла cookie.

В контроллере вы можете легко вернуться к значению по умолчанию, используя что-то вроде этого:

$remember = ($this->input->post('remember') == 1) ? 1 : 0; 

Если флажок, он будет посылать 1 в качестве значения $remember, если они не для переменной вместо этого используется значение по умолчанию 0.

+0

Хорошо, что насчет функции set_checkbox в документах. Я не совсем понимаю, как я могу использовать это в этой ситуации. –

0

Если поставить hidden элемент формы перед флажком с таким же именем, как флажок (remember), и дать скрытый элемент значение 0, когда флажок не установлен, вы получите 0 от скрытых элемент. Когда флажок установлен, 0 из скрытого элемента будет перезаписан.

Пример HTML Выход:

<input type="hidden" name="remember" value="0" /> 
<input type="checkbox" name="remember" id="remember" value="1" /> <label for="remember">Remember Me!</label> 

Если флажок представляется, скрытый элемент перезаписаны, если это не так, то значение этого скрытого элемента посылается.

+0

Это хорошая идея, но не совсем тот маршрут, на который я хочу пойти. –

+0

Это довольно стандартный метод, в противном случае стандартный флажок не будет отправлять значение, если оно не проверено. Вместо этого вы можете использовать какой-то скриптовый флажок. – drew010

Смежные вопросы