记住我用代码点火器的cookie

时间:2012-03-02 03:38:59

标签: php codeigniter

我正在试图弄清楚如何使用代码点火器在我的脚本中添加一个记住我的功能。这是我试图用复选框做的事情。我收到if语句的语法错误。我没有正确使用它吗?

<?php echo form_label(form_checkbox( 'remember', 1, if (isset($this->input->cookie('xtrcook'))) { TRUE } ) . ' Auto-login in future.', 'remember' ); ?>

2 个答案:

答案 0 :(得分:0)

我不这么认为,这看起来像一个视图,而PHP是一种服务器端语言,这意味着一旦它呈现页面,就完成了 - 它不会响应复选框上的任何点击......你可以进行AJAX调用以维护您的结构,但我建议在您提交表单的页面上检查您的记忆变量,然后根据需要设置cookie。

答案 1 :(得分:0)

您遇到语法错误,因为您尝试将其作为参数传递:

if (isset($this->input->cookie('xtrcook'))) { TRUE }

这不是PHP中表达式的工作方式。您希望TRUE设置xtrcook Cookie,因此请传入此内容:

isset($this->input->cookie('xtrcook'))

实际上,$this->input->cookie()会返回Cookie值或FALSE,并且两者都会“设置”,因此此处isset()不合适,您可以使用! empty()或{ {1}}代替:

!== FALSE

整件事:

$this->input->cookie('xtrcook') !== FALSE // evals to TRUE if the cookie exists

仍然有点复杂,可能更容易传递<?php echo form_label(form_checkbox('remember', 1, $this->input->cookie('xtrcook') !== FALSE).' Auto-login in future.', 'remember'); ?> 函数并写下来:

form_label()