2013-10-22 5 views
5

मैं \Zend\Session\Container के साथ सत्र के अधिकतम जीवन समय को सेट करने का प्रयास कर रहा हूं। इसका परीक्षण करने के लिए मैंने इसे 1 सेकंड तक रखा।ज़ेंड फ्रेमवर्क 2 सत्र जीवन समय

अब मैं docs

को देखा तो मैं

लेकिन कोई सफलता नहीं किया। तब मैं googling शुरू किया और पाया this answer

तो मैं कोई सफलता

तो मैं जारी रखा

return array(
    'session' => array(
     'remember_me_seconds' => 2419200, 
     'use_cookies' => true, 
     'cookie_httponly' => true, 
    ), 
); 

(config काम किया है और प्रबंधक में लोड किया गया था), लेकिन फिर से करने के लिए config बनाया खोज और this answer पाया

लेकिन फिर से कोई सफलता नहीं।

तो सभी खोजों के बाद मैं इसे काम नहीं कर सका, इसलिए अब मुझे उम्मीद है कि किसी और ने इसे काम कर लिया है और मेरी मदद कर सकता है।

उत्तर

6

वैसे मैं फाइनल को पता चला कि समस्या क्या थी।

समस्या यह है कि मैं का इस्तेमाल किया

$sessionConfig = new SessionConfig(); 
$sessionConfig->setOptions(array(
    'use_cookies' => true, 
    'cookie_httponly' => true, 
    'gc_maxlifetime' => $config['authTimeout'], 
)); 
$manager = new SessionManager($sessionConfig); 

यह "काम" था ही मुद्दा यह है कि वहाँ जीवन session साथ एक कुकी सेट किया गया था। यह ब्राउज़र में विभिन्न चीजों का उल्लेख है। यदि आप टैब बंद करते हैं तो क्रोम में यह नष्ट हो जाता है, इसलिए कोई फर्क नहीं पड़ता कि gc_maxlifetime कितना अधिक काम नहीं करेगा।

तो एक आसान ठीक हो जाएगा निम्नलिखित

$sessionConfig = new SessionConfig(); 
$sessionConfig->setOptions(array(
    'use_cookies' => true, 
    'cookie_httponly' => true, 
    'gc_maxlifetime' => $config['authTimeout'], 
    'cookie_lifetime' => $config['authTimeout'], 
)); 
$manager = new SessionManager($sessionConfig); 

आशा है कि यह futue

$config['authTimeout'] में कुछ एक में मदद मिलेगी एक धनात्मक पूर्णांक मान

0
$config = new StandardConfig(); 
$config->setOptions(array(
    'cookie_lifetime' => '2419200', 
    'gc_maxlifetime' => '2419200' 
)); 

2419200 का मान बदलें कि आप वास्तव में कितने सेकंड चाहते हैं।

+2

मुझे लगता है कि मैं इस निर्धारित करने की आवश्यकता है प्रबंधक को कॉन्फ़िगर करें, और फिर कंटेनर के प्रबंधक। यदि ऐसा है, तो यह मेरे लिए काम नहीं कर रहा है। मैंने मानक कॉन्फिग को सत्र कॉनफिग – MKroeders

0
आवेदन global.php में

या आप मॉड्यूल config में कर सकते हैं:

'session_config' => array(
    'name' => 'your session name', 
    'remember_me_seconds' => 60 * 60 * 24 * 30*3, 
    'use_cookies' => true, 
    'cookie_httponly' => true, 
), 

जांच Zend \ सत्र \ सेवा \ SessionConfig।

+0

में बदलने की भी कोशिश की है, आपको मैन्युअल रूप से इस कॉन्फ़िगरेशन का उपयोग करने की आवश्यकता है। यहां एक नज़र डालें: https://stackoverflow.com/questions/12774809/how-to-bootstrap- सत्र-in-zend-framework-2 – nepda

संबंधित मुद्दे