您好,欢迎访问一九零五行业门户网

CodeIgniter模板,下面的代码,Session为什么会变化?

load->helper(url_helper);
$this->load->library(session);
//session_start();
    }
public function index()
    {
/** login each time visit **/
if (isset($_session['user_name'])) {
    $this->display(welcom);
} else {
    $this->display(login);
}
    }
public function login()
    {
$_session['user_name'] = $this->input->post(user_name);
$this->display(welcom);
    }
private function display($pages)
    {
$this->load->view(templates/header, $data);
$this->load->view(admin/$pages, $data);
$this->load->view(templates/footer);
    }
}
基于codeigniter的模板框架,上面的控制器代码,逻辑是:首次访问时,调用index函数,判断$_session['user_name']没有设置就显示login页面,login页面把数据提交给login函数,并在login函数中设置$_session['user_name'].
现在的问题是:
1、首次访问的session_id()和登录页面提交后(login函数)的session_id()不一致。请问为什么?
2、这样就引发了另一个问题,如果再打开一个标签页(相当于一个窗口吧),重新访问时(此时调用index函数),$_session['user_name']没有设置,必须重新登录。
请教如何解决?
回复讨论(解决方案) 没人遇到过吗?
php.ini 中 session.auto_start = 0
php.ini 中 session.auto_start = 0
应该不是这个原因导致的。我不用ci,自己写的测试代码不存在这个问题。
其它类似信息

推荐信息