Firefox ではセッション変数は保存され、リダイレクト後に取得できますが、Chrome ではリダイレクト後に存在しないと表示されます。
リダイレクト コード:
session_start();
$_SESSION[ "test" ] = "exists";
session_write_close();
header( "HTTP/1.1 301 Moved Permanently" ); //Removing this 301 line doesn't help
header( "Location: http://" . $_SERVER[ "HTTP_HOST" ] . "/" );
exit();
セッションの取得:
session_start();
if ( isset( $_SESSION[ "test" ] ) )
{
echo $_SESSION[ "test" ];
unset( $_SESSION[ "test" ] );
}
これがクロムで機能しないのはなぜですか?
編集:答えを見つけたと思いますが、意味がありません。
行を削除するとunset( $_SESSION[ "test" ] )
、リダイレクト後にセッションが保存されます! しかし、なぜこれが起こるのですか?セッションはサーバー側である必要があります。そして、「echo」ステートメントの後に設定を解除します! その後変数を設定解除したからといって、値がエコーされないのはどうしてですか?!
誰が何が起こっているのか知っていますか?