0

ユーザーがシステムにログインすると、セッション変数が$_SESSION['logged_in'] = 1;あり、各ページで変数をチェックして、ユーザーがログインしているかどうかを確認します。これは正常に機能します。

session_start();
if (!$_SESSION['logged_in']) {
   header("location: https://mydomain.com/cpanel/login.php");
   exit();
}

しかし今、メンテナンスを容易にするために、このセッション チェッカーをインクルード ファイルに追加し、すべての安全なページの先頭に含めたいと考えています。ただし、ログインするたびに失敗します。

これは、インクルード ファイルの内容です。

// start session
session_start();

// check login session
if (!$_SESSION['logged_in']) {
   header("location: https://mydomain.com/cpanel/login.php");
   exit();
}

そして、これは私が各ページのヘッダーに追加したものです:

// load authentication file
include "../includes/authentication/check.php";

しかし$_SESSION、私は間違いなくログインしているのに、 が空であるように見えます。session_start();どうにかして再取得しているのではないかと思ったので、インクルード ファイルから を削除しようとしましたが、そうではありませんでした。

ここで何がうまくいかないのか、手がかりを得た人はいますか?

4

1 に答える 1

2

include_onceを使用するのは、毎回 include session_start();を含めるためです。問題はこれだと思います

于 2013-02-04T18:56:21.473 に答える