首頁 > 後端開發 > php教程 > CodeIgniter模板,下面的代码,Session为什么会变化?

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

WBOY
發布: 2016-06-23 13:04:21
原創
1055 人瀏覽過

defined("BASEPATH") OR exit("No direct script access allowed");
/**
 * admin of the content
 */

class Admin extends CI_Controller {
    private $signature;
    public function __construct()
    {
parent::__construct();
$this->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,自己写的测试代码不存在这个问题。
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板