CodeIgniter cookie不会持久存在

时间:2013-05-23 05:16:59

标签: php codeigniter cookies

我正在创建一个登录系统,并希望将用户名和密码(哈希和盐渍)存储到cookie中。但是,cookie不会持久存在。底部的var_dump显示cookie的值,但是如果我打开一个新页面,则该值不存在。是

以下是我的CodeIgniter代码。

    function set_cookies() {
        $this->load->helper('cookie');

        $cookieData = array('name'   => 'username',
                            'value'  => $this->username,
                            'expire' => 86500,
                            'domain' => ".example.com",
                            'path'   => '/'
                        );
        $this->input->set_cookie($cookieData);

        $cookieData = array('name'   => 'password',
                            'value'  => $this->password,
                            'expire' => 86500,
                            'domain' => ".example.com",
                            'path'   => '/'
                        );
        $this->input->set_cookie($cookieData);

        var_dump($this->input->cookie("username"));
    }

试过这个以获取cookie:     public function testLogin(){         的var_dump($这 - >输入); print“

”;         的var_dump($这 - >输入 - >饼干( “用户名”));     }

我很久以前就遇到过这个问题而且从来没有找到解决方案。现在在一个新项目上,我有同样的问题。帮助很多,非常感谢!

2 个答案:

答案 0 :(得分:0)

现在我对CodeIgniter知之甚少,但我猜它使用的是PHP函数setcookie。如果是这样,您需要具有自时间以来的UNIX时间戳(以秒为单位)的到期时间。

这意味着在你的情况下“expire”应该是time()+ 86500.

这是一个很常见的错误。 :)

答案 1 :(得分:0)

考虑使用Session Class

这对于处理登录数据非常方便。

$this->session->set_userdata('username', $username);

$username = $this->session->userdata('username');

您最好添加一个MySQL数据库,CodeIgniter用于存储数据,在指定链接中指示。您还可以在config.php

中设置持续时间