0

我在处理 cookie 时遇到了一些问题。最初我将 cookie 值设置为 0。当用户导航到下一页时,我想将 cookie 值加一。我的控制器是这样的:

class Welcome extends CI_Controller {

    public function index() {
        $this->load->helper('cookie');
        $this->input->set_cookie("starttime", time(),time()+3600);
        $this->input->set_cookie("pagevisited",0,time()+3600);
        $_SESSION['currenttime'] = time();
        $this->load->view('indexpage');
    }

    public function page1() {
        $this->load->helper('cookie');
        $value = $this->input->cookie("pagevisited");
        $this->input->set_cookie("pagevisited",$value+1,time()+3600);
        $this->load->view('page1');
    }

    public function page2() {
        $this->load->helper('cookie');
        $value = $this->input->cookie("pagevisited");
        $this->input->set_cookie("pagevisited",$value+1,time()+3600);
        $this->load->view('page2');
    }
}

上面的代码不起作用。cookie 值仍然为 0。我注意到 CI 也存储具有相同 cookie 名称的会话变量。

4

1 回答 1

4

我认为您的 cookie 语法不正确。CodeIgniter 手册说只需要名称和值,但要添加其他参数,您需要全部设置它们或定义一个数组,我相信。这里有两种定义你想要的 cookie 的方法。

$cookie = array(
    'name'   => 'The Cookie Name',
    'value'  => 'The Value',
    'expire' => '86500'
);

$this->input->set_cookie($cookie);

或者

$this->input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure);
于 2013-04-10T08:41:05.757 回答