我正在创建一个登录系统,并希望将用户名和密码(哈希和盐渍)存储到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($这 - >输入 - >饼干( “用户名”));
}
我很久以前就遇到过这个问题而且从来没有找到解决方案。现在在一个新项目上,我有同样的问题。帮助很多,非常感谢!
答案 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
。