- ベストアンサー
セッションに関する問題
- ウェブアプリのレンタルサーバーへのアップ時にセッションの問題が発生
- ログイン時にセッションに格納されたIDが他の会員のIDと入れ替わる
- 問題の原因は不明で、コードの確認も行っているが見つからない
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
余り詳しい状態が判らないのですが、register_globalsが悪戯をしている可能性があります。 一例ですが、mypage.phpが、以下のようなプログラムの場合、問題が発生します。 =================================== if (isset($_SESSION['userid'])) { $userid = $_SESSION['userid']; } if (isset($userid)) { echo "<p>訪問者:$userid</p>"; } else { echo "<p>訪問者:ゲスト</p>"; } =================================== register_globals=onの場合は要注意です。 ログインしていない状態($_SESSION['userid']がセットされていない)で、mypage.php?userid=AAAにアクセスした場合、「訪問者:ゲスト」にはならずに、「訪問者:AAA」になります。 これと似たことが起きているのかなーと推測しています。
その他の回答 (1)
- fdsjaklfjas
- ベストアンサー率81% (96/118)
情報が余り無いので推測でしかありませんが。。。 セッションにユーザIDを格納する変数名と、マイページでGETで受け取る変数名がバッティングしていませんか? 例えば、セッションに、$_SESSION['userid']=...として、 マイページではmypage.php?userid=...というURLにしていませんか? register_globalsがonで、variables_orderが違う環境だと、コーディングによっては変数がごちゃごちゃになって、トラブルになることがあるので。
お礼
>fdsjaklfjasさま はじめまして。早速のお返事有難う御座います。 >変数名がバッティングしていませんか? やはり考えられるところは、そこになるのでしょうか? 今一度見直し、改めてご報告も兼ねてご連絡いたします。 有難う御座いました。
補足
補足欄から失礼します。 >register_globalsがonで、variables_orderが違う環境だと、 ですが、只今確認したところ、variables_orderは同一。register_globalsはlocalではoff、レンタルサーバーはon となっていました。 自分でも調べてみますが、盲点となるような事があったら引き続きアドバイスなど頂けたら幸いに思います。 お忙しい中恐縮ですが宜しくお願い申し上げます。
お礼
fdsjaklfjas様 こんにちは。早速のお返事有難う御座います。 fdsjaklfjas様のコードですが・・まさしく似たようなものを設置しております! session変数と、GETで渡した変数は違う名称にしているのですが、 GETで渡されたIDが、セッションにセットされてしまう状況です。 そこで、「.htaccess」を設置し、register_globals=off としたところ、 無事、解決することが出来ました! この「.htaccess」に関しても、fdsjaklfjas様のヒントの結果です。 session変数と、GETで渡している変数が違うものなのに・・と、私のスキルでは不可解なところはありますが、とりあえずこの場を凌ぎホッとしております。 有難う御座いました!