0

Cookie の処理に問題があります。最初に、Cookie の値を 0 に設定しました。ユーザーが次のページに移動したときに、Cookie の値を 1 つ増やしたいと考えています。私のコントローラーは次のようなものです:

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 を定義する 2 つの方法を次に示します。

$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 に答える