php - 跳转到另一个页面时php cookie更改为NULL
问题描述
在我的控制器/Welcome.php 中,我包含了一个登录功能。Rhis 不是完整的代码。我只包含代码的关键部分,以便您可以更清楚地阅读它。我将默认设置login_status
为false
. 当用户有正确的用户名和密码时,login_status
设置为true
. 但是,在我的项目/Home.php 中,我尝试检索 cookie“login_status”。但 cookie 变成NULL
. 代码的关键部分如下:
控制器/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 是纯文本。您不能在 Cookie 中存储布尔值。您可以做的是存储一个表示布尔值的字符串。例如:1 for true
和0 for false
$this->input->set_cookie('login_status','0',3600); //set it to '1' in the log in process
//also notice: expiration is how long it should remain in seconds
去检查
if($this->input->cookie('login_status')== '0'){
推荐阅读
- html - 物化模态不工作,保持开放
- vue.js - Vue.js - 如何使用元素菜单下拉菜单
- r - dplyr 中的子选择
- maven - 如何在 bazel 中使用/导入 Flink 的 TestHarness 类?
- python - 用 python、selenium(WebDriver) 和漂亮的肥皂抓取艺术家的名字
- java - 如何使 JFrame 和 JMenubar 不在 public static void main(String[] args)
- r - 更改 ggplot2 中特定数据的颜色
- python - 在 Django 中为其创建应用程序后未出现消息
- json - 在 Swift 中从同一个 URL 获取两个 JSON
- java - Firebase Firestore 更新字段后 Android 片段崩溃