2011-09-02 85 views
0

我有通过测试的控制器示例名称。CodeIgniter会话未保存

在索引方法中,我将创建会话,它将成功存储在数据库中,但是当我想以其他方法读取它们时,它将在数据库中创建另一个会话。 例如:

public function index(){ 
    $this->session->set_userdata('test','test'); 
} 
public function test(){ 
    echo $this->session->userdata('test'); 
} 

它不会回应。当我检查数据库时,它创建了新的行。

+1

当你把它放在测试函数中时输出什么?的var_dump($这 - >会话级> all_userdata()); – Tobias

+0

我不认为从你的控制器'echo'会传播到你的视图,但'var_dump($ this-> session-> userdata('test'))'会。作为@Tobias:var_dump的输出是什么? – danneth

回答

1

我在其他地方(例如here)看到Codeigniter在本地主机上存在cookie问题,这会导致您描述的问题,因为如果cookie无效Codeigniter将无法识别会话并且从数据库收集这些信息。为了验证这个假设,你可以上传你的应用程序到一个真实的服务器并在那里尝试。

0

我面临同样的问题,只是发现该系统的会话库有一些问题设置的,它看起来像

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 
      ); 

写了它和它的工作饼干out fine