我有测试控制器示例名称。
在索引方法中我将进行会话,它将成功存储在数据库中,但是当我想在其他方法中读取它们时,它将在数据库中进行另一个会话。 例如:
public function index(){
$this->session->set_userdata('test','test');
}
public function test(){
echo $this->session->userdata('test');
}
它什么都不回应。当我检查数据库时,它就成了新的一行。
答案 0 :(得分:1)
我在其他地方(例如here)看到Codeigniter在localhost上有cookie问题而且会导致你所描述的问题,因为如果cookie无效,Codeigniter将无法识别会话并从数据库中收集该信息。为了验证这个假设,您可以将应用程序上传到真实服务器并在那里进行尝试。
答案 1 :(得分:0)
我遇到了类似的问题,发现System的会话库在设置cookie时遇到了一些问题
setcookie(
$this->sess_cookie_name,
$cookie_data,
$expire,
$this->cookie_path,
$this->cookie_domain,
$this->cookie_secure
);
我只是用
重写了它setcookie(
$this->sess_cookie_name,
$cookie_data,
$expire,
$this->cookie_path,
$this->cookie_secure
);
并且效果很好