※ ChatGPTを利用し、要約された質問です(原文:セッションが引き継げません)
セッションが引き継げません
このQ&Aのポイント
IE7でページ遷移を行うと、セッションが引き継げず新しいセッションが作成されます。
sapmle.phpで$_SESSION['hogehoge']を参照するとエラーになります。
use_trans_sidをOnにするか、セッションIDをURLに付与するかでエラーが出なくなる可能性があります。しかし、この処置はセキュリティ上良くないため、適切な対策を検討する必要があります。
PHP5.3 + Apache2.2 Windowsです。
IE7でページ遷移を行うと、セッションが引き継げず、新しいセッションが作成されてしまいます。(Chromeでは引き継げます)
セッション保存フォルダに新しいセッションファイルが生成されていました。
以下ソースコードです。
$_SESSION['hogehoge'] = 'xxxx';
header("Location:sapmle.php");
sapmle.phpで$_SESSION['hogehoge']を参照すると、エラーになる。
エラー内容:Notice Undefined Index 'hogehoge'
また、<a href="sample.php">次のページ</a> と記述したリンクをクリックしても同じエラーになります。
php.ini の use_trans_sid を Onにすると、エラーは出ません。
use_only_cookies を OnしてもOffにしてもエラーは出ました。
use_trans_sid が Offでも header("Location:sapmle.php?" . session_name() . "=" . session_id()); と書くとエラーは出ません。
エラーが出なくなれば良いので、use_trans_sid を Onにしたり、URLにセッションIDを付与すれば良いのかもしれませんが、
これらの処置はセキュリティ上良くないと聞いたことがあるので、どうするのがいいのかわかりません。
わかる人教えてください。よろしくお願いします。
お礼
解決しました! ありがとうございました。