• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:現在、セッションを使用して会員用ページを作成しています。 )

セッションを使用して会員用ページを作成中にIDのセッションが切れる原因と解決方法

このQ&Aのポイント
  • 現在、セッションを使用して会員用ページを作成中ですが、実行環境でIDのセッションが切れる問題が発生しています。
  • 問題の原因を調査していますが、特にIDとパスワードの構文に変更は加えておらず、なぜIDだけがセッション切れするのか分かりません。
  • PHP.iniの設定に問題がある可能性があり、output_bufferingをOnに変更すると問題が解消される場合があるようですが、レンタルサーバでは直接変更できません。.htaccessを使用して設定変更を試みましたが正常に動作しませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

session cookie 発行前になにか出力されてしまってるのが原因なら、 最初に呼び出されるphpファイルの先頭で、ob_start(); を実行してやれば、バッファリング開始となり、以降は、文字列出力後に、setcookie や、header出力しても、きちんと、送信されます。 これは、output_buffering = On にするのとほぼ同じ効果です。 http://jp.php.net/manual/ja/ref.outcontrol.php それとも「別のページ」のディレクトリーが異なっていて、session cookie のpath 設定範囲外だったりとか。session.cookie_path とかも調査した方がいいですよ。session_start 前なら変更可能です。 cookie周りのデバッグには、ieではcookie一覧出来ないので、firefoxとかoperaで現在ブラウザが保持しているcookie の状態もチェックした方がいいですよ。 ディレクトリーの深さの違うpathで同じcookie名を発行した時、どれを送るかは、ブラウザ依存という情報もあります。 http://gihyo.jp/dev/serial/01/php-security/0025 path_info 付きのurlの時に、cookie path を ""=ブランクに設定すると、ブラウザはpath_info 込みのurlにcookie 登録するので、path_infoを削ったurlでアクセスした時には、そのcookieは送信されない。ということもあります。つい先日そんな失敗をやらかしたばかり。。。

その他の回答 (2)

回答No.2

レンタルサーバーはセーフモードではありませんか? セーフモードだとセッションがおかしくなる場合があります。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

> なぜIDだけがセッション切れしているのかが分かりません。 セッションが切れる時は丸ごと切れる気がしますので、 例えば、ですが、 $_SESSION['ID'] = ""; とかが どこかにあって、上書きしてしまってませんでしょうか? 所々に print_r($_SESSION); を入れて、確認してみてはいかがでしょう?

lotus1988
質問者

お礼

javascriptでPHPを読んでるところで上書きされていました。 ありがとうございました!