Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 已设置Codeigniter cookie,但返回NULL_Php_Codeigniter_Cookies - Fatal编程技术网

Php 已设置Codeigniter cookie,但返回NULL

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'){

我只是不明白为什么我的cookie返回空值。 我想我已经在设置cookie时设置了正确的语法,如果我已经检查了它,我就没有问题了。配置文件中的global_xss_筛选选项是否相关?必须将其设置为true才能使Cookie正常工作吗

如果有人能指出我的错误,我很高兴

我的控制器

    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'));试试这个……谢谢你,是的,我匆忙下结论可能是因为我的饼干终于恢复了我的价值。我试着放回去,它仍然有效