0

我正在创建一个登录系统,并希望将用户名和密码(散列和加盐)存储到 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($this->input); 打印“

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

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

4

2 回答 2

0

考虑使用会话类

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

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

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

您最好添加一个 MySQL 数据库,CodeIgniter 使用它来存储数据,在给定的链接中进行了说明。您还可以在 中设置持续时间config.php

于 2013-05-23T07:01:13.500 回答
0

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

这意味着在您的情况下“过期”应该是 time() + 86500。

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

于 2013-05-23T05:20:17.013 回答