[PHP-users 2123] Re: セッションの基本的な質問

KOYAMA Tetsuji php-users@php.gr.jp
Mon, 17 Sep 2001 21:11:58 +0900


  小山です。

At Mon, 17 Sep 2001 17:03:58 +0900,
tyunn wrote:
> > >  session_start();
> > >  session_register("foo");
> > > と設定しますと、変数$fooに対してセッションIDが作られますよね?

>   このセッションID(ここでは$foo)は、複数のクライアントがWebを閲覧
>   する場合それぞれのクライアントにひとつづつセッションIDが割り振られ
>   サーバーに記憶されるということでよいでしょうか?

  まず、$foo はセッションIDではありません。
  セッションID は session_id() で得られる乱数文字列です。セッションID 
により現在の「セッション」が特定されます。session_register() は「セッ
ション」に変数を登録する関数です。

>   仮にメールアドレスを入力してログインする画面の場合
>   session_register("foo");
>   $email="xxx@xxx.com";
>   session_register("email");
>     $type=$foo.$email;
>     session_register("type");
>     としておくと
>   次回  xxx@xxx.com さんがログインした場合
>   $typeを調べると過去にこのページを訪れたということが判断できる
>   のでしょうか???(ちょっと混乱・・)

  上記の場合、過去に訪れたかどうかは、セッション内の $email をみれば判
断できるのではないですか? $foo や $type がどういう意図をもっているのか、
私には理解できません。

  ただし、セッション情報を長期間に渡ってサーバ側に保持しておくことは通
常はしません。ユーザの過去の履歴を保存しておきたいのなら、ファイルなり
DB なりに保存しておくべきでしょう。

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org