1

从一个控制器重定向到另一个控制器时,核心 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 会话。

4

3 回答 3

2

有什么问题吗:

$this->session->set_userdata('user', $data[0]['u_name']);
于 2013-03-26T14:55:08.740 回答
1

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

if (isset($_SESSION['user'])) {
            ^^^^^^^--- note: all CAPS
于 2013-03-26T14:34:34.640 回答
1

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

} 
于 2013-03-26T14:58:48.057 回答