明らかな何かが欠けていると思います。ページの一番上からセッションを開始しました。その下に、次のコードがあります。"one"
要求されたページから表示されると、var ダンプが出力されます。var ダンプを更新した後、 puts を出力しNULL
ます。これが保存されないのはなぜですか?
if($_REQUEST["page"] == 1) {
$_SESSION["one"] = true;
}
var_dump($_SESSION["one"]);
明らかな何かが欠けていると思います。ページの一番上からセッションを開始しました。その下に、次のコードがあります。"one"
要求されたページから表示されると、var ダンプが出力されます。var ダンプを更新した後、 puts を出力しNULL
ます。これが保存されないのはなぜですか?
if($_REQUEST["page"] == 1) {
$_SESSION["one"] = true;
}
var_dump($_SESSION["one"]);
まず、セッションを使用する前に、セッションを開始する必要があります。次に、一般的に REQUEST を使用する代わりに、POST または GET を指定することをお勧めします。GET または POST をサポートする場合は、次のようにします。
// Begin Session Management
session_start();
// Check both GET and POST for the parameter
if($_GET['page'] == 1 || $_POST['page'] ) {
// Modify the session
$_SESSION["one"] = true;
}
// See what we ended up with in the session.
var_dump($_SESSION["one"]);
これは私にとってはうまくいきますが、セッションのセッションハンドラーとして memcache を使用しています。php.ini で独自のセッション ハンドラーを確認し、セッション ハンドラーが正しく機能していることを確認します。また、リダイレクト、新しい場所の設定、または異常な方法で終了する場合は、セッションを適切に閉じていることを確認してください。
あなたがsession_start()
主張するように、ページの上部にある場合、コードは次のようになります。
session_start();
if($_REQUEST["page"] == 1) {
$_SESSION["one"] = true;
}
var_dump($_SESSION["one"]);
これは 100% うまくいくはずです。あなたが提供していないコードでこれが機能するのを妨げている何かがあります。私の最初の推測は、ある種のセッション破壊でしょう。