2012-05-11 11 views
5

मुझे हाल ही में पढ़ना याद है कि आप किसी सर्वर के लिए एक PHP सत्र शुरू होने के सटीक समय के टाइमस्टैम्प प्रारूप में सर्वर सत्र स्टार्ट-टाइम प्राप्त कर सकते हैं, लेकिन मुझे यह लेख फिर से नहीं मिला।मुझे php सत्र प्रारंभ टाइमस्टैम्प कैसे मिल सकता है

क्या मैं नहीं करना चाहती अनुरोध समय या date() के निष्पादन के रूप में क्योंकि (अगर मैं इन सही ढंग से समझ) वे प्रत्येक अनुरोध के लिए बदल जाएगा "वर्तमान टाइमस्टैम्प" और प्रत्येक स्क्रिप्ट निष्पादन (समय 'REQUEST_TIME' यानी) है ।

मैं क्या चाहता हूं कि सत्र सर्वर पर शुरू किया गया था, और यह तर्कसंगत समय में केवल एक पल हो सकता है।

स्पष्ट रूप से इस जानकारी को पुनर्प्राप्त करने का एक था।

क्या कोई मदद कर सकता है?

+0

आप एक बुकमार्क कर सकते हैं या यदि आप कुछ इंटरनेट में उपयोगी पाया यह के बारे में ब्लॉग चाहिए। फिर इसे बाद में फिर से ढूंढना आसान है। – hakre

+0

मुझे पता है मुझे पता है। मुझे उस समय दिलचस्प नहीं मिला ... यह बीज को लगाया जाना चाहिए था और अब मैं कीमत चुकाता हूं। – T9b

उत्तर

8

क्या बुराई है:

if (!isset($_SESSION['started'])) { 
    $_SESSION['started'] = $_SERVER['REQUEST_TIME']; 
} 
+0

+1 मेरे दिमाग को पढ़ें :) –

+0

अगर मैं इसे सही ढंग से समझता हूं तो यह अंतिम http अनुरोध के लिए अनुरोध का समय है। उदाहरण के लिए यदि उपयोगकर्ता ने कई पृष्ठों पर नेविगेट किया है तो यह अंतिम नेविगेशन के अनुरोध समय को कैप्चर करेगा। अगर मैं इस पर गलत हूं तो कृपया मुझे सही करें। – T9b

+2

@ टी 9 बी: आप गलत हैं। समय केवल एक बार सेट किया जाता है - जब $ _SESSION ['start'] सेट नहीं होता है। फिर सेट करते समय, यह छेड़छाड़ नहीं होता है, इसलिए हमेशा शुरुआती समय होता है। – djot

3
if (!isset($_SESSION['start_time'])) 
{ 
    $str_time = time(); 
    $_SESSION['start_time'] = $str_time; 
} 

echo $_SESSION['start_time']; 
2

आप एक कम से कम जवाब चाहिए

$_SESSION['started'] = (!isset($_SESSION['started'] ? time() : $_SESSION['started']);