ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter テンプレート、以下のコード、なぜセッションが変更されるのですか?

CodeIgniter テンプレート、以下のコード、なぜセッションが変更されるのですか?

WBOY
WBOYオリジナル
2016-06-23 13:04:211058ブラウズ

define("BASEPATH") OR exit("直接スクリプトへのアクセスは許可されていません");
/**
* コンテンツの管理者
 */

class Admin extends CI_Controller {
private $signature;
パブリック 関数 __construct()
{
parent::__construct();
$this->load->helper("url_helper");
$this->load->library("セッション");
//session_start();
}

public function index()
{
/** 訪問するたびにログイン**/
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("ようこそ");
}

プライベート関数 display($pages)
{
$this->load->view("templates/header", $data);
$this->load->view("admin/$pages", $data);
$this->load->view("テンプレート/フッター");
}
}

CodeIgniter のモジュールフレーム、上部の制御器代コード、逻辑是:初回访问時、调用インデックス関数、判断$_SESSION['user_name'] 設定なしでログイン面を表示、ログイン面でデータ提交ログイン関数数、ログイン関数中に $_SESSION['user_name'] を設定します。
発生している問題は次のとおりです:
1、最初にアクセスした s​​ession_id() と、登録面の交換後の (ログイン関数) の session_id() が一致しません。标签页(1 つの口に相当)、再ログイン時 (今回はインデックス関数を使用)、$_SESSION['user_name'] が設定されていないため、再登録する必要があります。

回复讨论(解决方案)

没人遇到过吗?

php.ini 中 session.auto_start = 0

php.ini 中 session.auto_start = 0
应该不是这个私はCIを使用していません、自分で書き込んだテストコードにはこのような問題はありません。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。