2012-05-20 9 views
5

मैं ज़ेन का उपयोग सत्र समाप्ति के साथ 1,800 सेकेंड तक कर रहा हूं। मैं सोच रहा था कि क्या इस सत्र की समाप्ति समय उपयोगकर्ता के पक्ष में सर्वर से सर्वर पर अनुरोध करने पर भी 1,800 सेकेंड तक रीफ्रेश करता है और जब उपयोगकर्ता कोई नया पृष्ठ लोड करता है, या जब उपयोगकर्ता लोड करता है तो यह रीफ्रेश करता है नया पृष्ठ?PHP सत्र समाप्ति - यह ताज़ा कब होता है?

+2

आप इसे 5 सेकंड तक सेट कर सकते हैं और इसका परीक्षण कर सकते हैं। – goat

+0

यह इस बात पर निर्भर करेगा कि आप सत्र का उपयोग कैसे कर रहे हैं और आप किस विकल्प और कॉन्फ़िगरेशन का उपयोग कर रहे हैं। – RockyFord

उत्तर

2

जब कोई उपयोगकर्ता एक नया पृष्ठ लोड करता है, तो यह ब्राउज़र उपयोगकर्ता की ओर से सर्वर से अनुरोध कर रहा है। तो ऊपर दिए गए दो परिदृश्य एक ही चीज़ हैं।

जब कोई सत्र शुरू होता है, सत्र आईडी ब्राउज़र पर भेजी जाती है जो आमतौर पर इसे कुकी में संग्रहीत करती है। ब्राउजर उपयोगकर्ता को पहचानने के लिए प्रत्येक अनुरोध के साथ सर्वर पर सत्र आईडी पास करने के लिए कुकी का उपयोग करता है। सर्वर सत्र समाप्त होने पर ट्रैक रखता है और यह क्षेत्र थोड़ा मुश्किल हो सकता है (How do I expire a PHP session after 30 minutes? पढ़ें)

लेकिन जब तक आप अनुरोध करने के लिए एक ही ब्राउज़र का उपयोग कर रहे हैं, तो सत्र की समाप्ति दो परिदृश्यों में ताज़ा हो जाएगी आपने दिया है

0

कुकी आईडी जो सत्र आईडी (और लक्ष्य सर्वर से उत्पन्न होने वाली सभी अन्य कुकीज़) रखती है, वह सर्वर पर आपके द्वारा किए गए हर अनुरोध के साथ यात्रा करती है, चाहे वह पृष्ठ रीफ्रेश हो या अजाक्स कॉल हो।

तो हाँ, सत्र सर्वर के साथ किसी भी बातचीत पर रीफ्रेश करता है।

0

असल में यह कई चीजों पर निर्भर करता है। ब्राउजर और ब्राउजर के संस्करण पर काफी हद तक। आप इस पोस्ट को पढ़ सकते हैं: How do I expire a PHP session after 30 minutes?

0

जब आप session_start() करते हैं तो यह पहली कॉल है, सर्वर/tmp फ़ोल्डर में फ़ाइल में सत्र जानकारी सहेजता है, और इस ब्राउज़र को इस फ़ाइल पहचानकर्ता के साथ एक कुकी भेजता है, अन्यथा सर्वर कुकी पहचानकर्ता प्राप्त करता है और फ़ाइल जानकारी लोड करता है। Php विन्यास में डिफ़ॉल्ट रूप से इस कुकी की अवधि 30 मिनट है।

आप इस कुकी का समय php.ini में बढ़ा सकते हैं या मैन्युअल रूप से ini_set फ़ंक्शन या .htacces फ़ाइल में निर्देश सेट कर सकते हैं। आप केवल निर्देश सत्र.cookie_lifetime सेट करते हैं। मान सेकेंड की संख्या हैं या कुकी पर सेट होने तक वैध हैं जब तक कि आप ब्राउज़र बंद नहीं करते हैं

एक और सकारात्मक समाधान उपयोगकर्ताओं के लिए टोकन सिस्टम बनाता है, उदाहरण के लिए आप मैन्युअल रूप से ब्राउज़र पर कुकी भेजते हैं जो 2 महीने बाद समाप्त हो जाता है एक टोकन चौड़ाई (बड़ी यादृच्छिक कुंजी, उपयोगकर्ता आईडी फ़ील्ड के साथ डेटाबेस तालिका में सहेजा गया)। जब सत्र उपलब्ध नहीं होता है तो आप जांचते हैं कि कुकी मौजूद है या नहीं और आप कुकी टोकन के साथ उपयोगकर्ता को मैन्युअल रूप से ढूंढने के सत्र लॉगिन को फिर से बना सकते हैं।

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