在codeigniter中使用cookie登录时记住我复选框
Posted
技术标签:
【中文标题】在codeigniter中使用cookie登录时记住我复选框【英文标题】:remember me checkbox in login using cookie in codeignitor 【发布时间】:2020-05-04 07:33:38 【问题描述】:我想在单击记住我复选框时保存电子邮件和密码,并且应该在记住我时设置 cookie。登录工作正常。请帮助我使用 codeignitor 中的代码这是我的控制器代码:
public function loginaction()
$email=$this->input->post('email');
$password=$this->input->post('password');
$where = array('email'=>$email,'password'=>$password);
$tbname='login';
$query = $this->Insert_Model->viewdata($tbname,$where);
if(empty($query))
$data['msg']="Invalid email or password";
$this->load->view('login',$data);
else
redirect('dashboardv1');
下面是我实现的 cookie 代码:
function set()
$cookie= array(
'name' => 'chkremember',
'value' => 'test',
'expire' => '300',
'secure' => TRUE
);
$this->input->set_cookie($cookie);
function get()
echo $this->input->cookie('chkremember',true);
【问题讨论】:
cookie 代码在哪里? 我编辑了帖子。请看看它现在是否清楚。 你需要添加helper cookie$this->load->helper('cookie')
【参考方案1】:
首先你必须包括我在评论部分提到的 cookie 助手
之后在你的控制器中
public function loginaction()
$this->load->helper('cookie');
$email=$this->input->post('email');
$password=$this->input->post('password');
$where = array('email'=>$email,'password'=>$password);
$tbname='login';
$query = $this->Insert_Model->viewdata($tbname,$where);
if(empty($query))
$data['msg']="Invalid email or password";
$this->load->view('login',$data);
else
//first you have to delete old cookie and create new one
delete_cookie("email");
delete_cookie("password");
if ($this->input->post('remember') == 'true')
$userName = array(
'name' => 'email',
'value' => YOUREMAIL,
'expire' => '86500',
'prefix' => '',
'secure' => FALSE
);
$this->input->set_cookie($userName);
$password = array(
'name' => 'password',
'value' => YOURPASSWORD,
'expire' => '86500',
'prefix' => '',
'secure' => FALSE
);
$this->input->set_cookie($password);
redirect('dashboardv1');
在下面的代码中获取你可以使用的cookie
<?php echo get_cookie('email'); ?>
<?php echo get_cookie('password'); ?>
【讨论】:
非常感谢..您的代码运行良好。你能帮我在控制器中使用注销功能吗?我希望表单字段保持填写电子邮件和密码,用户登录时选择记住我复选框。 谢谢,请为答案投票,以便其他开发人员可以使用这些代码。您只需在输入字段中使用<?php echo get_cookie('email'); ?>
作为值。并检查是否为isset get_cookie('email')
然后记住我的复选框是否选中。而您的注销控制器只需取消设置会话,无需在 cookie 中执行任何操作。以上是关于在codeigniter中使用cookie登录时记住我复选框的主要内容,如果未能解决你的问题,请参考以下文章
在 codeigniter 中使用 HTTPOnly 标志设置 cookie