我正在试图弄清楚如何处理这种情况。我有以下用于登录用户的行但是在这种情况下,可能不会在表单提交时设置remember post参数,所以我仍然希望它使用此函数发送0作为其值。
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 :(得分: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>
如果提交了复选框,则隐藏隐藏元素,如果不是,则发送隐藏元素的值。
答案 1 :(得分:0)
你的问题不是很清楚。如果'remember'参数未设置为1,您就知道您的用户不想被记住,因此您不会延长其Cookie的使用寿命。
在您的控制器中,您可以使用以下内容轻松恢复为默认值:
$remember = ($this->input->post('remember') == 1) ? 1 : 0;
如果他们单击该复选框,它将发送1作为$remember
值,如果他们没有将默认值0用于该变量。