CodeIgniterフレームワークでネイティブPHPセッション($ _SESSION)を使用しています。
ユーザーがログインとパスワードを入力する「ログイン」コントローラーロードビューがあります。ユーザーがログインフォームを送信すると、「Login」コントローラーのauthenticate()メソッドが呼び出されます。すべて問題がなければ、$ _ SESSION配列にデータを追加し、ユーザーを「Organisation」コントローラーのmyOrganisation()メソッドにリダイレクトします。Login / login()、Login / authenticate()、Organisation / myOrganisation()メソッドでsession_start()を呼び出していますが、myOrganisation()メソッドではセッションが新しいため、セッションは渡されません。
2つのテストphpページを作成してCookieの機能をテストしました。ここでは、セッションIDをエコーするだけです。それは完璧に動作します。たぶん私はsession_start()を必要なすべての場所に配置していませんか?(私はそれらをすべてのコントローラーメソッドに入れました)。
ログインコントローラー:
class Login extends CI_Controller {
public function index() {
session_start();
$this->load->view("Login/index", $data);
public function authenticate() {
session_start();
$_SESSION['login'] = $login; // everything is alright, redirect
header("location: ".base_url()."Organisations/MyOrganisation");
組織コントローラー:
public function MyOrganisation() {
session_start(); // here session is a new one, not passed
if(isset($_SESSION['login'])) {