Php 已设置Codeigniter cookie,但返回NULL
我只是不明白为什么我的cookie返回空值。 我想我已经在设置cookie时设置了正确的语法,如果我已经检查了它,我就没有问题了。配置文件中的global_xss_筛选选项是否相关?必须将其设置为true才能使Cookie正常工作吗 如果有人能指出我的错误,我很高兴 我的控制器Php 已设置Codeigniter cookie,但返回NULL,php,codeigniter,cookies,Php,Codeigniter,Cookies,我只是不明白为什么我的cookie返回空值。 我想我已经在设置cookie时设置了正确的语法,如果我已经检查了它,我就没有问题了。配置文件中的global_xss_筛选选项是否相关?必须将其设置为true才能使Cookie正常工作吗 如果有人能指出我的错误,我很高兴 我的控制器 public function store_cookie(){ if($this->input->post('remember_me') == 'remember'){
public function store_cookie(){
if($this->input->post('remember_me') == 'remember'){
$cookie = array(
'name' => 'remember',
'value' => 'logged_in',
'expire' => '86500',
'secure' => TRUE
);
$this->input->set_cookie($cookie);
var_dump($this->input->cookie($cookie));
//This is where i do my checking and it returns NULL
die();
//model
$this->load->model('admin_model');
$this->admin_model->store_cookie($this->input->post('email'),$this->input->post('remember_me'));
}
}
public function validate_credentials2(){
$this->load->model('admin_model');
$query = $this->admin_model->validate();
if($query){
// if($this->input->post('remember_me')== 'remember'){
// $cookie = array(
// 'name' => 'remember',
// 'value' => 'logged_in',
// 'expire' => '86500',
// 'secure' => TRUE
// );
// $this->input->set_cookie($cookie);
// }
$this->store_cookie();
$data = array(
'email' => $this->input->post('email'),
'is_logged_in' => TRUE,
'role' => 'admin'
);
$this->session->set_userdata('counter2', 0);
$this->session->set_userdata($data);
redirect('admin/home', 'refresh');
}
//admin controller
public function home(){
var_dump($this->input->cookie('remember')); //still returns NULL
die();
$this->load->view('ui/admin_home');
}
检查
仅适用于https
还可以将路径和域添加为
'domain' => '.localhost',
'path' => '/path_to_the_folder_name',
当页面打开时,您必须将用户id存储在cookies中。。。在检查会话之前检查Cookie
//admin controller
public function home(){
var_dump($this->input->cookie('remember')); //still returns NULL
die();
$this->load->view('ui/admin_home');
}
如果在Cookie中设置了用户id…获取用户并在会话中设置用户
//admin controller
public function home(){
var_dump($this->input->cookie('remember')); //still returns NULL
die();
$this->load->view('ui/admin_home');
}
改为:
public function home(){
$data['cookie'] = $this->input->cookie('rememeber', TRUE);
$this->load->view('ui/admin_home',$data);
}
您也可以通过调用它在查看页面中使用它。我找到了解决问题的方法 我将过期时间设置为数值,安全性设置为false 资料来源:
在下一页加载之前,您无法检查cookie谢谢您的回答,先生,我只想澄清一下,如果我成功登录并存储了一个cookie以实现“记住我”功能,会发生什么。登录后,我将关闭浏览器,当我在新打开的浏览器中再次打开我的网站时,cookie是否已经设置了值?您好,先生,将其重定向到管理视图的控制器后仍然返回null我使用的是本地主机,因此我将安全变量更改为FALSE,不幸的是,如果您添加$this->load->helper('cookie');…?,cookie值保持为空;。。。??并在浏览器中清理cookies。我已将其与表单和url一起设置在配置文件中,因此我假设它已运行…我将尝试清理浏览器上的cookies请添加路径和域,因为上面的路径和域仍然有空值,我感谢您的帮助仍然有“记住”cookie$cookie\u email=array的空值('name'=>'admin_email','value'=>$this->encrypt->encode($this->input->post('email'),'expire'=>20*365));安全仅支持https页面。您可以使用encrypt Library,先生,尽管我关心的是为什么我不能从我在第一个控制器上设置的cookie中获取值。.htaccess文件是否影响此.Nope。不会的。您可以在查看页面中将其直接称为print_r(get_cookie('cookie'));试试这个……谢谢你,是的,我匆忙下结论可能是因为我的饼干终于恢复了我的价值。我试着放回去,它仍然有效