[PHP-users 35507] Re: session_cache_expire 戻り値
Tomoo Nomura
nomurat @ tmo.co.jp
2011年 2月 24日 (木) 08:12:26 JST
鈴木さん、宇野さん
解説ありがとうございます。
では、変更前の値が帰るということで了解しました。
ここからが本当の問題なのですが。。。
最初のページで
$SESSION_EXPIRE = 18000 ;
session_cache_limiter('private_no_expire') ;
session_cache_expire($SESSION_EXPIRE) ;
session_start() ;
$sid = session_id() ;
$_SESSION['sid'] = $sid ;
$fp = fopen( "/tmp/session", "a" ) ;
session_cache_limiter('private_no_expire') ;
$t2 = session_cache_expire($SESSION_EXPIRE) ;
$t3 = session_cache_expire($SESSION_EXPIRE) ;
session_start() ;
$t = date("H:i:s") ;
$SID = $_SESSION['sid'] ;
$sid = session_id() ;
fputs( $fp, "$t expire=$t3 SID=$SID sid=$sid \n" ) ;
fclose( $fp ) ;
としています。最初に$_SESSION['sid']に$sidをセットしているだけで、fopen
以降は2ページめと共通です。
2ページ目では、
$SESSION_EXPIRE = 18000 ;
$fp = fopen( "/tmp/session", "a" ) ;
session_cache_limiter('private_no_expire') ;
$t2 = session_cache_expire($SESSION_EXPIRE) ;
$t3 = session_cache_expire($SESSION_EXPIRE) ;
session_start() ;
$t = date("H:i:s") ;
$SID = $_SESSION['sid'] ;
$sid = session_id() ;
fputs( $fp, "$t expire=$t3 SID=$SID sid=$sid \n" ) ;
fclose( $fp ) ;
です。ここで、1ページめ、2ページめを表示し、約1時間後に再度2ページめ
を表示しました。結果は、
06:44:04 expire=18000 SID=f6cde25e8afb81ca7e36ec950d727f6b
sid=f6cde25e8afb81ca7e36ec950d727f6b
06:44:11 expire=18000 SID=f6cde25e8afb81ca7e36ec950d727f6b
sid=f6cde25e8afb81ca7e36ec950d727f6b
07:48:26 expire=18000 SID= sid=f6cde25e8afb81ca7e36ec950d727f6b
sid=の値は同じなので、セッションは引き継がれていると思うのですが、SIDの
値が消えています。これはsession_cache_expireの問題ではなく、何か他に問題
があるのでしょうか?
よろしくお願いいたします。
野村
--
****** Nomura Technical Management Office Ltd. *****************
Tomoo Nomura nomura @ tmo.co.jp http://www.tmo.co.jp/
Phone: +81-78-797-0240 Fax: +81-50-3743-1336
Worldwide Airline Timetable 'Flight Planner'
European Electronic Timetable 'HAFAS' ValueFax Support
****************************************************************
PHP-users メーリングリストの案内