当将控制器重定向到控制器时,核心php会话在codeigniter中丢失

时间:2013-03-26 14:33:07

标签: codeigniter

当从一个控制器重定向到另一个控制器时,核心php会话在codeigniter中丢失。 在第一个控制器中,当我们为其赋值时,它可以正常工作。此外,在第一个控制器中,会话被正确处理,但在重定向到另一个控制器后,会话丢失。

这是第一个控制器:

$_session['user'] = $data[0]['u_name']; // assign value to session 
echo $_session['user']  // works fine here and print user name
redirect("useraccount",'refresh'); // redirection to user account

它在useraccount.php控制器中不起作用

这里是第二个控制器

public function index() {

    if(isset($_session['user']))
      echo $_session['user'];
    else 
      echo "no session";
    //$data['main'] = 'users/dashboard';
    //$this->load->view('index',$data);

} 

它没有打印会话。如何在重定向后将会话传递给第二个控制器  到第二个控制器?

注意:我想使用核心php会话而不是codeigniter会话。

3 个答案:

答案 0 :(得分:1)

是否有问题:

$this->session->set_userdata('user', $data[0]['u_name']);

答案 1 :(得分:0)

PHP变量名称区分大小写。它应该是

if (isset($_SESSION['user'])) {
            ^^^^^^^--- note: all CAPS

答案 2 :(得分:0)

使用session_start()属性访问核心php会话

试试这个

public function index()    
{
   session_start();
   if(isset($_session['user']))
   echo $_session['user'];
   else 
    echo "no session";
   //$data['main'] = 'users/dashboard';
   //$this->load->view('index',$data);

}