• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ログイン管理について)

ログイン管理について

このQ&Aのポイント
  • ログイン管理についての質問について説明します。ログインページからセッション情報が消える問題が発生しており、Yahoo!のようにセッションとCookieを両立させる方法を知りたいです。サンプルや参考になるページがあれば教えてください。
  • phpで会員制のサイトを作成しようとしていますが、ログイン中に他のページに遷移し、「戻る」の操作を行うとセッション情報が消える問題があります。この問題を解決するためには、セッションとCookieを両立させる方法を知りたいです。Yahoo!のようにログイン情報を保持する方法についてのサンプルや参考になるページを教えてください。
  • 今、phpで会員制のサイトを作成していますが、ログイン中に他のページに遷移し「戻る」の操作を行うとセッション情報が消える問題が発生しています。この問題を解決するために、セッションとCookieを両立させる方法を知りたいです。具体的な方法やサンプル、参考になるページがあれば教えてください。

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

  • ベストアンサー
  • oscar3
  • ベストアンサー率100% (2/2)
回答No.2

ソースを見ましたが、セッションに格納している部分が見当たらないですね・・・ このソースからだと”セッション管理をしていない”ということになります。 もしかしてPOSTのデータ(print $_POST[tAAA];の部分)が消えてしまうって事を言っていますかね? であれば、戻るボタンで「見た目」動くのはキャッシュデータを表示しているだけです。 セッションでログイン情報を管理するのであれば、認証を正常通過したタイミングで S_SESSION['tAAA'] = $_POST['tAAA']; とし、以降は$_SESSION['tAAA']を参照するようにすれば良いでしょう。 #define(999.php)ですが、どういう意図でやっているのか見えないのですが・・・

tdohmoto
質問者

お礼

お返事ありごとうございました。  私の勉強不足でした。 書いていただいたとおり、セッションを格納していませんでした。 S_SESSION['tAAA'] = $_POST['tAAA']; の文のとおり修正しましたら、無事に入力値が取得できました。 感謝しています。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • oscar3
  • ベストアンサー率100% (2/2)
回答No.1

通常セッションは今回の想定外フローの動作では破棄されません。 破棄されるタイミングは ・セッションのmaxlifetime(php.iniに設定)に達した時 ・クッキーの有効期限に達したか、削除した時 phpの設定(maxlifetime)あたりが怪しいのでその確認をしてみてください。 (もしくはソース中でsession_destoryをしていないか) >ネットで検索を行ったところ、「Yahoo!」さんではセッションの他に >Cookieを利用していると拝見しました。この二つを両立させるには(略) ちょっと勘違いをしてますかね。 セッションデータはサーバに保存され、そしてそのセッションを識別 するセッションIDは通常cookieに保存されます。(URLにPHPSESSID=xxxxとGET渡しすることも可能) セッションIDを元にサーバは相手を特定しているわけです。 ですので、cookie無効にしていない場合はcookieを利用していることになります

tdohmoto
質問者

補足

ご回答ありがとうございます。 破棄されないのですか。 困りました。なぜ、表示されないのでしょうか? 念のためサンプルに作成したソースを記させていただきます。 誤っている点がありましたら、ご指摘ください。 操作としては「111.php」~「555.php」に流れていく感じです。 「999.php」は上記で書きました「definition.php」になります。 「111.php」で適当な値を入力し、「555.php」で再度、入力値を 表示します。 --------------------------111.php--------------------------- <?php session_start(); mb_language("Japanese"); mb_internal_encoding("Shift_JIS"); require_once "999.php"; print "<HTML>"; print "<HEAD>"; print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"; print "<META http-equiv=\"Content-Style-Type\" content=\"text/css\">"; print "</HEAD>"; print "<BODY>"; print "<FORM ACTION=\"222.php\" METHOD=\"post\">"; print "<INPUT size=\"20\" type=\"text\" name=\"AAA\"><BR>"; print "<INPUT type=\"submit\" name=\"BBB\" value=\"送信\">"; print "</FORM>"; print "</BODY>"; print "</HTML>"; ?> ------------------------------------------------------------ --------------------------222.php--------------------------- <?php session_start(); mb_language("Japanese"); mb_internal_encoding("Shift_JIS"); require_once "999.php"; print "<HTML>"; print "<HEAD>"; print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"; print "<META http-equiv=\"Content-Style-Type\" content=\"text/css\">"; print "</HEAD>"; print "<BODY>"; print "<B>"; print $_POST[tAAA]; print "</B><BR>"; print "<P><A href=\"333.html\">333へ</A></P>"; print "</BODY>"; print "</HTML>"; ?> ------------------------------------------------------------ --------------------------333.html-------------------------- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <P><A href="444.html">444へ</A></P> </BODY> </HTML> ------------------------------------------------------------ --------------------------444.html-------------------------- <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <P><A href="555.php">555へ</A></P> </BODY> </HTML> ------------------------------------------------------------ --------------------------555.php--------------------------- <?php session_start(); mb_language("Japanese"); mb_internal_encoding("Shift_JIS"); require_once "999.php"; print "<HTML>"; print "<HEAD>"; print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">"; print "<META http-equiv=\"Content-Style-Type\" content=\"text/css\">"; print "</HEAD>"; print "<BODY>"; print "<B>"; print $_POST[tAAA]; print "</B><BR>"; print "</BODY>"; print "</HTML>"; ?> ------------------------------------------------------------ --------------------------999.php--------------------------- <?php mb_language("Japanese"); mb_internal_encoding("Shift_JIS"); define("tAAA", "AAA"); //入力値 ?> ------------------------------------------------------------ よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A