2

$_SESSIONWeb サイト全体で正しく機能している変数がいくつかあります。

print_r($_SESSION)版画

Array ( [first_name] => Daniel [last_name] => Jameson [email] => email@gmail.com [logged_in] => 1 )

ただし、何らかの理由で index.php の変数はすべて未設定です。

print_r($_SESSION)版画

Array ( )

index.php の名前を index2.php に変更すると、すべて機能します。これは、コード自体は問題ないことを意味しますが、何らかの理由で index.php のファイル名/パスが問題です。

最近、mod_security ブロックのホワイトリストに登録されました。それが問題の原因でしょうか? おそらくファイルのアクセス許可と関係がありますか?私の専門外です…

編集

URL を試してみると、.../index.php?blah期待どおりに動作します。私が追加したのはキャッシングの問題だと思った:

header('Cache-Control: no-store, private, no-cache, must-revalidate');     // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false);  // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');                  // Date in the past  
header('Expires: 0', false); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header ('Pragma: no-cache');

しかし、index.php はまだ$_SESSION変数の設定を解除しています。キャッシュもクリアしましたが。

4

1 に答える 1

0

まず、関数 session_start() がコード内のすべての前に設定されていることを確認してください。$_SESSION が設定できない理由: ヘッダーの直前に $_SESSION を設定した場合。したがって、ヘッダーの直前に関数 session_write_close() を配置する必要があります。またはキャッシュに問題があります。

于 2013-07-16T08:23:16.063 に答える