【问题标题】:CodeIgniter cookies do not persistCodeIgniter cookie 不会持续存在
【发布时间】:2013-05-23 05:16:59
【问题描述】:

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

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

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

【问题讨论】:

  • hi...而不是使用var_dump...你能用这个功能检查cokkie是否存在吗??? if(get_cookie('username')) { echo "Yes": } else{ echo "NO": }
  • 不要将某人的密码保存到 cookie 中,这对安全性很不利。
  • @NishantLad - 当我转储时,该表达式的布尔值为“false”。
  • @Cryode - 我通常不这样做;我仍在开发中,所以我暂时这样做,直到找到更好的重新验证方法。
  • 好吧...你能告诉我除了这些你存储在 cookie 或 session 中的其他值吗?????恐怕你已经超过了codeigniter的存储限制

标签: php codeigniter cookies


【解决方案1】:

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

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

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

【讨论】:

  • CodeIgniter 的设置 cookie 函数将 time() 添加到您设置的过期值中。
【解决方案2】:

考虑使用Session Class。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2019-05-25
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多