सत्र क्यों है। Cookie_lifetime 23 दिनों के लिए सेट है? [बन्द है]


9

जहां तक ​​मैं समझता हूं कि ड्रूपल पर सत्र का जीवनकाल session.gc_maxlifetimeलगभग 2.3 दिनों के लिए डिफ़ॉल्ट रूप से सेट द्वारा सीमित है ।

फिर session.cookie_lifetime23 दिनों के लिए सेट होने का क्या फायदा है ?

यहाँ settings.php से स्निपेट है:

/**
 * Set session lifetime (in seconds), i.e. the time from the user's last visit
 * to the active session may be deleted by the session garbage collector. When
 * a session is deleted, authenticated users are logged out, and the contents
 * of the user's $_SESSION variable is discarded.
 */
ini_set('session.gc_maxlifetime', 200000);

/**
 * Set session cookie lifetime (in seconds), i.e. the time from the session is
 * created to the cookie expires, i.e. when the browser is expected to discard
 * the cookie. The value 0 means "until the browser is closed".
 */
ini_set('session.cookie_lifetime', 2000000);

कृपया मान लें कि मैंने इस प्रश्न के निमित्त दोनों को session.gc_probabilityऔर session.gc_divisor1 को सेट किया है ।


क्योंकि आप कुकी को रहस्यमय तरीके से गायब नहीं करना चाहते हैं? आप चाहते हैं कि यह वहाँ हो ताकि सत्र को सुशोभित रूप से अमान्य किया जा सके? क्या यह आपके लिए कोई वास्तविक समस्या है?
Mołot

यह तो है। लेकिन कुकी को 40 घंटे और सर्वर सत्र को 51 घंटे में समाप्त करना बेहतर नहीं होगा? मेरा मतलब है कि कुकी का जीवनकाल सर्वर की समय सीमा से कम है।
user5858

यह काफी हद तक राय आधारित है और केवल PHP लेखक ही बता सकते हैं। ओह, और यह सत्र हैंडलर पर निर्भर करता है जिसे आपने उपयोग करने का निर्णय लिया है। लेकिन आम तौर पर नहीं, आप एक सत्र नहीं चाहते हैं जो कुकी के लापता होने के कारण इसका उपयोग करने के लिए X अधिक घंटों के लिए सक्रिय और उपयोगी माना जाता है। यह स्टोरेज की बर्बादी है। कुकी को लंबे समय तक छोड़ने का मतलब है कि लगभग हमेशा कोई है जो सर्वर पर रखे सत्र डेटा का उपयोग कर सकता है, इसलिए रखा गया कोई सत्र डेटा बेकार नहीं है।
मोलॉट

जवाबों:


16

ini_set ('session.gc_maxlifetime', 200000);

  1. यह मान सर्वर के लिए है।
  2. यह सत्र कचरा संग्रह के लिए एक सेटिंग है।
  3. यदि उपयोगकर्ता पिछली बार 200000 से पहले आए थे तो यह सत्र कचरा संग्रहण के लिए पात्र है।
  4. चूंकि यह GC है, इसलिए सत्र मान को छोड़ दिया जा सकता है और अनिवार्य नहीं। यदि एक GC कार्रवाई सत्र के बाद GC के लिए योग्य बना दिया जाता है, तो इसे हटा दिया जाएगा।
ini_set('session.cookie_lifetime', 2000000);
  1. यह मान ब्राउज़र के लिए है।

  2. यह अधिकतम अधिकतम समय है जब तक कोई ब्राउज़र इस कुकी को सक्रिय रख सकता है।

  3. यहां 0 मान का अर्थ है तत्काल या जब ब्राउज़र बंद हो।

विशेष रूप से आपके प्रश्न का उत्तर देने के लिए।

  1. यदि उपयोगकर्ता 2.3 दिनों में सर्वर पर वापस नहीं आता है, तो सत्र कचरा संग्रह चलने पर उसका सत्र हटा दिया जाएगा।
  2. यदि वह प्रत्येक 2.2 (2.3 दिनों से कम) सर्वर पर एक पृष्ठ को मारता रहता है तो उसका सत्र सक्रिय रहेगा। लेकिन यह सत्र शुरू होने के 23 दिनों तक ही सक्रिय हो सकता है।
  3. तो इसका मतलब है कि session.cookie_lifetimeएक सत्र का पूर्ण अधिकतम जीवनकाल है।

1
संभाव्य कचरा कलेक्टर को नोट करें। अधिक विवरण: stackoverflow.com/a/1270960
डिजिटोफर

महान जवाब है, यह भी php.ini में किया जा सकता आप जैसे में अपने सर्वर पर है कि के लिए उपयोग किया है, तो /etc/php/5.6/fpm/php.iniसमायोजित (या जोड़ें) की स्थापना: session.gc_maxlifetime = 2000000। धन्यवाद।
उपचारात्मक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.