【问题标题】:CodeIgniter CookieCodeIgniter Cookie
【发布时间】:2013-04-10 07:43:14
【问题描述】:

我在处理 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 名称的会话变量。

【问题讨论】:

  • 在你的类的顶部,放置 public function __construct() { $this->load->helper('cookie') },这样你就可以在所有方法中使用它而你不需要'不必每次都加载它=)
  • 是的!请记住这一点。谢谢 Crowlix

标签: codeigniter


【解决方案1】:

我认为您的 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);

【讨论】:

  • 非常感谢。这就是我要找的。​​span>
  • $this->input->set_cookie('remember', '1',time()+3600, ADMIN_URL, '/');在我的页面中生成错误 - 调用未定义的方法 CI_Input::set_cookie()
  • 你已经加载了助手 $this->load->helper('cookie');
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2019-07-28
  • 2013-08-30
相关资源
最近更新 更多