2012-10-30 5 views
8

गिनती शुरू करता है प्रत्येक पृष्ठ लोड पर मैं वर्तमान सत्र को फिर से शुरू करने के लिए session_start() चलाता हूं। session.gc_maxlifetime कब से गिनती शुरू करता है? पहली बार session_start() कहा जाता है और उस सत्र की कुकी सेट की जाती है? या टाइमर प्रत्येक session_start() पुनरारंभ करता है?session.gc_maxlifetime

session.gc_maxlifetime के साथ टाइमर पर पहले पृष्ठ लोड session_start() शुरू होता है जब इस समय रेखा में सत्र डेटा कचरा एकत्र

1. 12:00:00 First page load, session_start(), session cookie created 
2. 12:10:00 page load, session_start() 
3. 12:26:00 page load, session_start() 
4. 12:55:00 page load, session_start() 

होना चाहिए 24 मिनट के लिए सेट तो मैं यह कचरा लोड 3 पर जमा होता उम्मीद करेंगे । लेकिन अगर यह हर session_start() रीसेट करता है, तो यह भार 4.

मैं आशा करता हूं कि यह बाद यह क्योंकि तब मैं एक जावास्क्रिप्ट दिल की धड़कन एक पृष्ठ है कि session_start() चलाता कॉल करने के लिए हर कुछ मिनटों कर सकता है जब तक जमा नहीं होगा।

यदि यह पूर्व है, तो session.gc_maxlifetime सत्र कुकी के निर्माण से गिनती शुरू कर देता है मुझे गिनती को रीसेट करने के लिए/recreate या regenerate_id को नष्ट करने की आवश्यकता है?

+0

क्या आप डिफ़ॉल्ट सत्र हैंडलर या एक अलग का उपयोग कर रहे हैं? – wgcrouch

+0

यह दार्शनिक है या क्या कोई समस्या है जिसे आप हल करने की कोशिश कर रहे हैं? –

+0

डिफ़ॉल्ट सत्र हैंडलर –

उत्तर

2

यह अंतिम सत्र_स्टार्ट() कॉल से है और/या आखिरी बार यह लिखा गया है। मेरा अनुमान बाद वाला होगा क्योंकि इससे "अंतिम संशोधित" टाइमस्टैम्प बदल जाएगा जो PHP कचरा कलेक्टर यह निर्धारित करने के लिए उपयोग करेगा कि इसे हटाया जाना चाहिए या नहीं। इस मामले में, यह समाप्त करने के लिए अंतिम स्क्रिप्ट से गिनती शुरू करता है जो session_start() का उपयोग करता है या जो session_ write_ close() को कॉल करके स्पष्ट रूप से मध्य स्क्रिप्ट के साथ समाप्त होता है।

पीएस इससे "दिल की धड़कन" अच्छी और सरल हो जाएगी (एक पंक्ति में): http://prototypejs.org/api/ajax/periodicalUpdater