【问题标题】:Retrieve Cookie Data in CodeIgniter在 CodeIgniter 中检索 Cookie 数据
【发布时间】:2014-02-26 17:13:46
【问题描述】:

我有以下功能:

    public function check_daily_data() {
            $month = $this->input->post('month');
            echo 'Month :' . $month . '</br>';
            $year = $this->input->post('year');
            echo 'Year :' . $year . '</br>';
            $user_id = $this->session->userdata('employee_id');
            echo 'User Id : ' . $user_id . '</br>';
            //load the cookie helper
            $this->load->helper('cookie');

                setcookie("month", "", time()-3600);
            setcookie("year", "", time()-3600);
            $time = time()+3600;
            $cookie_month = array(
                'name' => 'cookie_month',
                'value' => $month,
                'expire' => '3600',
                'secure' => TRUE
            );
            $this->input->set_cookie($cookie_month);

            $cookie_year = array(
                'name' => 'cookie_year',
                'value' => $year,
                'expire' => '3600',
                'secure' => TRUE
            );
            $this->input->set_cookie($cookie_year);

            var_dump($this->input->cookie('cookie_month')); 
            $cookie_months = $this->input->cookie('cookie_month',TRUE);
            echo 'Cookie Month : ' . $cookie_months . '</br>';

            $cookie_years = $this->input->cookie('cookie_year',TRUE);
            echo 'Cookie Year : ' . $cookie_years . '</br>';
}

当我运行脚本并使用 FireBug 检查 cookie 变量时,我可以查看 cookie 数据,但是当我尝试回显它时,我得到一个空白值。 var_dump 返回一个错误,请你告诉我我做错了什么?

【问题讨论】:

    标签: php codeigniter cookies


    【解决方案1】:

    好吧,为什么你没有得到价值是因为你设置了'secure' =&gt; TRUE。您需要将其设置为false。 true 设置仅适用于HTTPS

    $cookie_month = array(
                    'name' => 'cookie_month',
                    'value' => $month,
                    'expire' => '3600',
                    'secure' => FALSE
                );
    
     $cookie_year = array(
                    'name' => 'cookie_year',
                    'value' => $year,
                    'expire' => '3600',
                    'secure' => FALSE
                );
    

    那么当你调用时你就会得到你的价值

    $cookie_months = $this->input->cookie('cookie_month',TRUE);
    

    【讨论】:

    • 我已经这样做了,但我仍然无法回显 cookie 值,但我可以从 firebug 中查看 cookie 值
    • 试试 $cookie_years 和 $cookie_months 的 var_dump 吗?
    • 我仍然从 $cookie_years 和 $cookie_month 变量中得到一个 bool(false)
    • 好吧,为什么你没有得到价值是因为你设置了'secure' => TRUE。您需要将其设置为 false。 true 设置仅适用于 HTTPS
    猜你喜欢
    • 2016-03-22
    • 1970-01-01
    • 2011-09-18
    • 2016-04-21
    • 2015-04-20
    • 2014-12-03
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多