[PHP-users 8791] Re: セッション管理に DB を使う

Youichi Iwakiri php-users@php.gr.jp
Fri, 19 Jul 2002 18:51:40 +0900


いわきりです

Tybalt of Capulet wrote in <20020719180620.5CE4.ICE-MAN@tomato.ne.jp> :
>session_handler.phpの中を見たところ
>一番最後に
>
>session_set_save_handler("my_sess_open",
>         "my_sess_close",
>         "my_sess_read",
>         "my_sess_write",
>         "my_sess_destroy",
>         "my_sess_gc");
>
>という記述がありました。
>これは
>my_sess_open
>my_sess_close
>my_sess_read
>my_sess_write
>my_sess_destroy
>my_sess_gc
>の関数を一度に全部実行するといことですか?

違います。関数のエントリーポイントをオーバーライドして、独自関数を呼び出せる要に
するものです。

素のままだと、session_start()は、
素のsession_open()関数等を呼び、ファイルに保存されている
session情報を操作します。

session_set_save_handler()をコールする事で、
素のsession_*()群をファイル操作を行う素の関数の替わりにmysqlを操作する関数群へと
置き換えるものです。

>そうならセッションをオープンしてから同時にクローズしているような気がして
>さっぱり意味がわかりません。
>それとsession_handler.phpをrequireした後にsession_start();
>していてどうして通常のファイルにセッションが保存されないのでしょうか?
>私の中ではsession_handler.phpをrequireしていても、結局はsession_start();
>の関数を呼んでいるのでファイルにセッション情報が保存されているような
>気がしてなりません。
>もしかしてこれはphp.iniをDBに保存用に編集することを前提としているのでしょうか?
>どなたかおわかりの方教えていただけないでしょうか?
>よろしくお願い致します。

ハンドラについて勉強しましょう。

-- 
Youichi Iwakiri