• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:php session cookie 概念)

php session cookie 概念

このQ&Aのポイント
  • php&mysql会員制サイトでのsessionについて色々と調べましたが、cookieを利用せずにログイン・ログオフ状態が表示される理由が分からず、お答えいただきたいです。
  • ログイン直後のページではsessionが設定され、その他のページではsessionが空かどうかでログイン状態を判断しています。セキュリティ関連の処理は今後の予定です。
  • 個人サイト作成中で、php&mysqlを使用して会員制サイトを作成していますが、sessionについて理解が不十分で、cookieを使用せずにログイン状態を管理している理由を教えてください。

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

  • ベストアンサー
  • TAI_0824
  • ベストアンサー率54% (6/11)
回答No.1

文面を見る限り、$_SESSION変数の概念が理解されてないのかな、と思われます。もし私の認識違いでしたらすみません。 $_SESSIONという変数が、サーバサイドでクッキーの役割をしてくれる、と思ってもらってよいかと思います。 私が知る限り「画面遷移しても一定の変数=値を保持し続ける」方法として ・サーバサイドで処理するURI(?in_ymd=20080225&kbn=1 など) ・クライアントのクッキーに渡す ・サーバサイドの$_SESSION変数を使用する の3種類があります。 ソースを拝見する限り、3番目の$_SESSION変数を利用してうまくセッションが確立されているかと思います。cookieを利用していなく、URIにも何も付加されていなく、「どうしてなんだろう?」と思われるということはセキュリティ的にもOKではないかと思います。URLに平文で表示されては危険ですからね。 $_SESSION変数は上手に使うと効果的です。いろいろな場所で使用することを見越し、場面場面でクリアしやすい2次元連想配列($_SESSION['auth']['login_id']のように)にすることをおすすめします。 また認証情報だけでなく、Form入力値の受け渡しにも利用できます。 ちなみに$_SESSION変数には有効保持時間があります(確かデフォルトで25分ほど)。無操作で30くらい放置すると、自動クリアされます。 いずれにしても$_SESSION変数を使用することが常道となってますので、知らず知らずのうちに、マスターされてしまったのかな、と思います。

nori1969
質問者

お礼

お礼が遅くなり、大変失礼致しました。 ご指摘の通り、$_SESSION変数に対する理解不足でした。 質問文中にて触れた2つの方式ではなく、$_SESSIONはサーバーサイドで変数を保持できるものだったのですね。 2次元連想配列についても調べて活用してみたいと思います。 これでユーザー管理ができそうです。 本当にありがとうございました。 あ、質問文中の「ログインしてます」「ログインしてません」は逆でした。すみません^^;

関連するQ&A

専門家に質問してみよう