【发布时间】:2020-08-12 11:24:47
【问题描述】:
在我的控制器/Welcome.php 中,我包含了一个登录功能。 Rhis 不是完整的代码。我只包含代码的关键部分,以便您可以更清楚地阅读它。我将默认login_status设置为false。当用户有正确的用户名和密码时,login_status被设置为true。
但是,在我的项目/Home.php 中,我尝试检索 cookie“login_status”。但是 cookie 变成了NULL。
代码关键部分如下:
controller/Welcome.php 公共函数 login()
$this->input->set_cookie('login_status',FALSE,time()+3600);//delete or not
if($this->input->cookie('login_status')==FALSE){
//The following code means login password match the username
elseif($infomatch){
if($remember == 1){
$this->input->set_cookie('username',$username,time()+3600);
$this->input->set_cookie('password',$password,time()+3600);
$this->input->set_cookie('remember',$remember,time()+3600);
}
else
{
$this->input->set_cookie('username',"",time()-3600);
$this->input->set_cookie('password',"",time()-3600);
$this->input->set_cookie('remember',"",time()-3600);
}
$this->input->set_cookie('login_status',TRUE,time()+3600);//hihihihihi
redirect('home');
}
}
控制器/Home.php
if($this->input->cookie('login_status')==FALSE){
header("location: Welcome/login");
} else{
$this->session->set_userdata('login_status',TRUE);
$this->load->database();
$this->load->model('scheduler_model');
$this->load->view('header.php');
$data['username'] = $this->session->userdata('username');
$data["getnames"]=$this->scheduler_model->get_users();
$this->load->view('home/homepage',$data);
$data["getassignments"]=$this->scheduler_model->get_assignment();
$data["getselectedcourses"]=$this->scheduler_model->get_select_course();
$this->load->view('home/assignments',$data);
}
【问题讨论】:
-
永远不要在 cookie 中存储密码。使用服务器端会话。
标签: php codeigniter authentication cookies