내 사이트의 특정 페이지를 클릭 할 때 매우 짧은 세션 (3 분)을 설정해야합니다. 3 분 동안 다른 사람이 해당 페이지를 다시 방문하면 해당 시간에서 3 분이 지나면 세션이 만료됩니다. 내, 내가 다음을 수행합니다 (이것은 일반적인 젠드 부트 스트랩 아니지만,이 모든 페이지에 포함되어 있습니다) "부트 스트랩"에Zend_Session 및 만료
:
$aSessionSaveHandlerConfig = array
(
"name" => "Sessions",
"primary" => "Session_ID",
"modifiedColumn" => "UpdateTimestamp",
"dataColumn" => "Data",
"lifetimeColumn" => "Lifetime",
);
$oSaveHandler = new Zend_Session_SaveHandler_DbTable($aSessionSaveHandlerConfig);
$oSaveHandler->setLifetime(App::$ReservationTimeout)->setOverrideLifetime(true);
Zend_Session::setSaveHandler($oSaveHandler);
ini_set("session.cookie_lifetime",App::$ReservationTimeout);
$aSessionOptions = array
(
"gc_probability" => 100,
"gc_divisor" => 100,
"gc_maxlifetime" => App::$ReservationTimeout,
"cookie_lifetime" => App::$ReservationTimeout,
);
Zend_Session::setOptions($aSessionOptions);
다음 만들어야 페이지 내/업데이트 세션, 내가 가진 :
App::$ReservationSession = new Zend_Session_Namespace("ReservationSession");
$oSaveHandler = Zend_Session::getSaveHandler();
$oSaveHandler->setLifetime(App::$ReservationTimeout);
나는 데이터베이스에 레코드를 참조 수명 열이 올바른지,하지만 난 반복/세션을 갱신 생성 페이지를 치면로 3 분 통과 후, 나는 새로운 세션 ID를 얻을 수 (다른 하나는 쓰레기 수거 후 제거됩니다.)
쿠키가 시간을 업데이트하는 데 문제가있는 것으로 보입니다. 어떤 아이디어?
대단한 설명이지만 세션 ID를 사용하는 MySQL InnoDB 외래 키 제약 조건이 있으므로 타임 아웃을 업데이트 할 때 동일한 세션 ID를 유지해야합니다. 세션 ID를 변경하지 않고 기억하는 것을 할 수 있습니까? – Travis