【问题标题】:Cookies MVC and CodeigniterCookies MVC 和 Codeigniter
【发布时间】:2014-01-09 22:17:39
【问题描述】:

我无法掌握使用 codeigniter 加载 cookie 的时间和方式。访问这个控制器会调用一个 index 函数,然后它会根据它是否已经被设置创建一个 cookie 并加载另一个函数来加载视图,如下所示:

 public function index($id){
        $this->load->model('test_model');
        if($this->input->cookie('cookie'.$id) == false || null){
            $this->test_model->setCookie(id);
            $this->testView($id);
        } else {

            // echo $temp;
            $this->testView(id);    
        }
      }

设置cookie代码:

function setCookie($id){
        $cookie = array(
            'name'   => "cookie".$id,
            'value'  => 0,
            'expire' => '86500',
        );
        $this->input->set_cookie($cookie);
    }

在我看来,我有一个表单,我尝试更新 cookie 的内容,如下所示:

public function FormSubmission(){   
        $temp = $this->input->cookie("cookie".$id, TRUE);
        echo $temp;
        $temp2 = $this->test_model->updateCookie();      
        echo $temp2;   
        redirect('temp/index'.$id);
    }

updateCookie() 函数:

function updateCookie(){
        $id = $this->input->post('id');
        $pointer = $this->input->cookie("cookie".$id, TRUE);
        $pointer = $pointer + 1;
        delete_cookie("cookie".$id);
        $cookie = array(
            'name'   => "cookie".$id,
            'value'  => $pointer,
            'expire' => '86500',
        );
        $this->input->set_cookie($cookie);
    }

当我在更新前回显 cookie 时,它​​显示为 0。更新后它显示为 0,然后我重定向到索引函数。抱歉,如果这真的很简单,我是一个完全的新手。

【问题讨论】:

    标签: php codeigniter cookies


    【解决方案1】:

    cookie 信息是标头的一部分,它是从服务器发送到 Web 浏览器的第一个信息。因此,如果您将数字 123写入到第一个网页上的 cookie 中,您就可以从下一个网页的 cookie 中读取数字 123。

    但我强烈建议不要直接写入 cookie,而是使用 Codeigniter Sessions。 http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2012-11-13
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多