मुझे इसके साथ भी समस्या थी। मैं सोच रहा था कि प्रत्येक
session_set_cookie_params($sessionTime, '/', $domain);
session_start();
कारण है कि कुकी PHPSESSID के लिए समाप्ति समय बढ़ाया गया है। लेकिन वास्तव में कुकी PHPSESSID को session_start()
द्वारा सत्र में पहली बार सत्र में पहली बार सेट किया जाता है जब नया सत्र आईडी उत्पन्न होता है।
मेरा लक्ष्य था कि सत्र समाप्ति समय प्रत्येक पृष्ठ को खोले जाने पर हर बार पुन: उत्पन्न होना चाहिए। मैं पता लगा है कि सत्र क्योंकि दो कारणों में से समाप्त हो सकते हैं:
- कुकी PHPSESSID समाप्त हो रहा है, और इसकी समाप्ति समय
session_start()
द्वारा पुनर्जीवित नहीं है, इसलिए सत्र हमेशा समाप्ति समय के साथ कुकी की वजह से समाप्त हो जाएगा।
- उपयोगकर्ता की कोई गतिविधि सर्वर सत्र पर समाप्त होने का कारण बन जाएगी। यह
ini_set('session.gc_maxlifetime', $sessionTime)
द्वारा निर्धारित है।इस मामले में
समाधान आप कुकी के लिए समय सीमा समाप्ति समय निर्धारित नहीं होगा जब है, लेकिन अभी भी session.gc_maxlifetime
सेट है:
function my_session_start($maxtime = 300)
{
ini_set('session.gc_maxlifetime', $maxtime);
session_set_cookie_params(0, '/', "." . $domain);
session_start();
}
सबसे महत्वपूर्ण session_set_cookie_params(0, '/', "." . $domain)
में 0
तो कुकी समाप्त नहीं होगी है और वहाँ है इसकी समाप्ति समय बढ़ाने की जरूरत नहीं है। ब्राउजर बंद होने पर यह कुकी हटा दी जाएगी। फिर हम केवल उस समय तक सीमित हैं जो सर्वर की तरफ समाप्त हो जाता है।
मुझे इसके साथ भी समस्याएं थीं कि मैं jQuery अजाक्स पिंग्स द्वारा PHP सत्र समय का विस्तार नहीं कर सका क्योंकि मैंने कुकी में PHPSESSID के लिए समाप्ति समय निर्धारित किया था। 0
सत्रों की अपेक्षित समाप्ति के साथ सभी समस्याओं का समाधान करता है। मेरी अंग्रेजी के लिए खेद है। सौभाग्य।
स्रोत
2014-02-16 03:51:26
मुझे वही समस्या थी जैसा आपने किया था, जहां तक गतिविधि को तब तक बढ़ाया जाना चाहिए जब तक गतिविधि हो, और कई स्थानीय परीक्षण करने के बाद मुझे बस सत्र_regenerate_id() को अपने लिए सबसे अच्छा तरीका मिल गया। –