मैं 30 मिनट के बाद PHP सत्र कैसे समाप्त करूं?


1047

मुझे एक सत्र को 30 मिनट तक जीवित रखने और फिर इसे नष्ट करने की आवश्यकता है।


35
कृपया ध्यान दें कि सत्र का समय निर्धारित करने के लिए कम से कम दो सेटिंग्स महत्वपूर्ण हैं, और शायद तीन। दो निश्चित रूप से महत्वपूर्ण हैं सत्र। Gc_maxlifetime और session.cookie_lifetime (जहां 0 कुछ लंबी संख्या के समान नहीं है)। पूर्ण के लिए, लंबे समय तक अनुमति देने की 100% निश्चितता, यह सत्र सेट करने के लिए भी आवश्यक हो सकता है। save_path, ओएस-नियंत्रित क्लीनअप समय / tmp निर्देशिका पर भिन्न होने के कारण जहां सत्र फाइलें डिफ़ॉल्ट रूप से संग्रहीत होती हैं।
कजकाई

1
मुझे समझ में नहीं आता कि आप सत्र को क्यों समाप्त करना चाहते हैं। यदि आप चिंता करते हैं कि उपयोगकर्ता लॉग आउट किए बिना अपने कंप्यूटर को छोड़ देता है, और एक अनधिकृत उपयोगकर्ता अपने कंप्यूटर पर कब्जा कर लेता है, तो आपकी साइट पर सत्र समाप्ति डिस्क पर पीड़ित की फ़ाइलों को अपहर्ता तक पहुंचने से नहीं रोक पाएगी।
गक्क्निबग

यह स्पष्ट नहीं है कि आप यहां क्या पूछ रहे हैं। क्या आपका मतलब है कि आप एक कठिन निष्क्रियता को लागू करना चाहते हैं (वर्तमान में पीएचपी खुशी से आपको एक सत्र का उपयोग करने देगा जो सत्र से अधिक समय तक नहीं छुआ गया है। gc_maxlifetime) या क्या आपका मतलब है कि आप सत्र को 30 मिनट तक सीमित करना चाहते हैं, भले ही इसकी परवाह किए बिना निष्क्रियता? सच कहूँ तो मुझे लगता है कि यहाँ स्वीकार किए गए जवाब या तो समस्या के लिए बुरी सलाह है - दोनों ही मामलों में तर्क को कस्टम सत्र हैंडलर के साथ लागू किया जाना चाहिए।
सिम्बियन

जवाबों:


1663

आपको अपने स्वयं के एक सत्र के समय को लागू करना चाहिए। दूसरों द्वारा उल्लिखित दोनों विकल्प ( session.gc_maxlifetime और session.cookie_lifetime ) विश्वसनीय नहीं हैं। मैं उसके कारणों की व्याख्या करूँगा।

प्रथम:

session.gc_maxlifetime
session.gc_maxlifetime सेकंड की संख्या को निर्दिष्ट करता है जिसके बाद डेटा को 'कचरा' के रूप में देखा जाएगा और साफ किया जाएगा। सत्र प्रारंभ के दौरान कचरा संग्रहण होता है।

लेकिन कचरा संग्रहकर्ता केवल session.gc_probability से विभाजित होने की संभावना के साथ शुरू किया है । session.gc_divisor । और उन विकल्पों के लिए डिफ़ॉल्ट मान (क्रमशः 1 और 100) का उपयोग करके, मौका केवल 1% पर है।

ठीक है, आप बस इन मूल्यों को समायोजित कर सकते हैं ताकि कचरा कलेक्टर को अधिक बार शुरू किया जाए। लेकिन जब कचरा कलेक्टर शुरू किया जाता है, तो यह हर पंजीकृत सत्र के लिए वैधता की जांच करेगा। और यह लागत-गहन है।

इसके अलावा, जब पीएचपी के डिफ़ॉल्ट का उपयोग कर session.save_handler फ़ाइलें, सत्र डेटा फ़ाइलों में एक पथ में निर्दिष्ट में संग्रहित है session.save_path । उस सत्र हैंडलर के साथ, सत्र डेटा की आयु की गणना फ़ाइल की अंतिम संशोधन तिथि और अंतिम अभिगमन तिथि पर की जाती है:

नोट: यदि आप डिफ़ॉल्ट फ़ाइल-आधारित सत्र हैंडलर का उपयोग कर रहे हैं, तो आपके फ़ाइल सिस्टम को एक्सेस टाइम (atime) का ट्रैक रखना होगा। Windows FAT ऐसा नहीं करता है, तो आपको अपने सत्र को इकट्ठा करने के लिए एक और तरीका अपनाना होगा यदि आप FAT फाइल सिस्टम या किसी अन्य फाइल सिस्टम के साथ अटके हुए हैं, जहां atime ट्रैकिंग उपलब्ध नहीं है। PHP 4.2.3 के बाद से इसने atime के बजाय mtime (संशोधित तिथि) का उपयोग किया है। इसलिए, आपको उन फ़ाइल सिस्टम के साथ समस्याएँ नहीं होंगी जहाँ atime ट्रैकिंग उपलब्ध नहीं है।

इसलिए यह अतिरिक्त रूप से हो सकता है कि सत्र डेटा फ़ाइल हटा दी जाए, जबकि सत्र को अभी भी मान्य माना जाता है क्योंकि सत्र डेटा हाल ही में अपडेट नहीं किया गया था।

और दूसरा:

session.cookie_lifetime
session.cookie_lifetime सेकंड में कुकी का जीवनकाल निर्दिष्ट करता है जो ब्राउज़र को भेजा जाता है। [...]

हाँ य़ह सही हैं। यह केवल कुकी जीवनकाल को प्रभावित करता है और सत्र अभी भी मान्य हो सकता है। लेकिन यह क्लाइंट को नहीं बल्कि एक सत्र को अमान्य करने के लिए सर्वर का काम है। तो यह कुछ भी मदद नहीं करता है। वास्तव में, session.cookie_lifetime सेट होने 0से सत्र की कुकी एक वास्तविक सत्र कुकी बन जाएगी जो केवल ब्राउज़र बंद होने तक मान्य है।

निष्कर्ष / सबसे अच्छा समाधान:

सबसे अच्छा समाधान अपने स्वयं के एक सत्र के समय को लागू करना है। एक साधारण समय टिकट का उपयोग करें जो अंतिम गतिविधि (अर्थात अनुरोध) के समय को दर्शाता है और इसे हर अनुरोध के साथ अपडेट करें:

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    // last request was more than 30 minutes ago
    session_unset();     // unset $_SESSION variable for the run-time 
    session_destroy();   // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp

सत्र डेटा को हर अनुरोध के साथ अपडेट करने से सत्र फ़ाइल की संशोधन तिथि भी बदल जाती है, ताकि समय से पहले कचरा संग्रहकर्ता द्वारा सत्र को हटाया न जाए।

सत्र निर्धारण जैसे सत्रों के हमलों से बचने के लिए आप समय-समय पर सत्र आईडी को पुनर्जीवित करने के लिए एक अतिरिक्त समय स्टाम्प का उपयोग कर सकते हैं :

if (!isset($_SESSION['CREATED'])) {
    $_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > 1800) {
    // session started more than 30 minutes ago
    session_regenerate_id(true);    // change session ID for the current session and invalidate old session ID
    $_SESSION['CREATED'] = time();  // update creation time
}

टिप्पणियाँ:

  • session.gc_maxlifetime इस कस्टम एक्सपायर हैंडलर के जीवनकाल के बराबर कम से कम होना चाहिए (इस उदाहरण में 1800);
  • यदि आप के 30 मिनट के बाद सत्र की समय सीमा समाप्त करना चाहते हैं गतिविधि के बजाय 30 मिनट के बाद शुरुआत के बाद से , आप भी उपयोग करना होगा setcookieएक की समय सीमा समाप्त हो के साथ time()+60*30सत्र कुकी सक्रिय रखने के लिए।

3
यदि आप "निष्क्रिय समय" की जांच करना चाहते हैं तो आप इसे कैसे बदल सकते हैं? दूसरे शब्दों में, उपयोगकर्ता लॉग इन करता है और जब तक वे साइट का उपयोग करना जारी रखते हैं, तब तक यह उन्हें लॉग आउट नहीं करेगा। हालांकि अगर वे 30 मिनट के लिए निष्क्रिय हैं तो यह उन्हें लॉग आउट कर देगा?
महानगर

14
@ मेट्रोपॉलिस: उपयोगकर्ता की अंतिम गतिविधि के समय को स्टोर $_SESSION['LAST_ACTIVITY']करने के समान कुछ का उपयोग $_SESSION['CREATED']करें लेकिन हर अनुरोध के साथ उस मूल्य को अपडेट करें। अब यदि उस समय का वर्तमान समय 1800 सेकंड से बड़ा है, तो सत्र का उपयोग 30 मिनट से अधिक नहीं किया गया है।
गमबो

3
@ मेट्रोपोलिस: के session_unsetरूप में ही करता है $_SESSION = array()
Gumbo

14
@ गंबो - मैं थोड़ा उलझन में हूं, क्या आपको अपने कोड के साथ संयोजन में उपयोग नहीं करना चाहिए ini_set('session.gc-maxlifetime', 1800)? अन्यथा आपकी सत्र जानकारी नष्ट हो सकती है जबकि आपका सत्र अभी भी वैध माना जाता है, कम से कम अगर आईएनआई सेटिंग मानक 24 मिनट है। या क्या मैं कुछ न कुछ भूल रहा हूं?
२१

10
@ जेरॉन: हाँ, आपको करना चाहिए। लेकिन ध्यान दें कि session.gc_maxlifetime सत्र सेव हैंडलर filesका उपयोग करने पर फ़ाइल की अंतिम संशोधन तिथि पर निर्भर करता है। तो सत्र। Gc_maxlifetime इस कस्टम समाप्ति हैंडलर के जीवन काल के कम से कम बराबर होना चाहिए।
Gumbo

135

30 मिनट में पीएचपी सत्र समाप्ति का सरल तरीका।

नोट: यदि आप समय बदलना चाहते हैं, तो बस 30 को अपने इच्छित समय के साथ बदलें और * 60 न बदलें: इससे मिनट मिलेंगे।


मिनटों में: (30 * 60)
दिनों में: (n * 24 * 60 * 60) n = दिनों का नहीं


login.php

<?php
    session_start();
?>

<html>
    <form name="form1" method="post">
        <table>
            <tr>
                <td>Username</td>
                <td><input type="text" name="text"></td>
            </tr>
            <tr>
                <td>Password</td>
                <td><input type="password" name="pwd"></td>
            </tr>
            <tr>
                <td><input type="submit" value="SignIn" name="submit"></td>
            </tr>
        </table>
    </form>
</html>

<?php
    if (isset($_POST['submit'])) {
        $v1 = "FirstUser";
        $v2 = "MyPassword";
        $v3 = $_POST['text'];
        $v4 = $_POST['pwd'];
        if ($v1 == $v3 && $v2 == $v4) {
            $_SESSION['luser'] = $v1;
            $_SESSION['start'] = time(); // Taking now logged in time.
            // Ending a session in 30 minutes from the starting time.
            $_SESSION['expire'] = $_SESSION['start'] + (30 * 60);
            header('Location: http://localhost/somefolder/homepage.php');
        } else {
            echo "Please enter the username or password again!";
        }
    }
?>

HomePage.php

<?php
    session_start();

    if (!isset($_SESSION['luser'])) {
        echo "Please Login again";
        echo "<a href='http://localhost/somefolder/login.php'>Click Here to Login</a>";
    }
    else {
        $now = time(); // Checking the time now when home page starts.

        if ($now > $_SESSION['expire']) {
            session_destroy();
            echo "Your session has expired! <a href='http://localhost/somefolder/login.php'>Login here</a>";
        }
        else { //Starting this else one [else1]
?>
            <!-- From here all HTML coding can be done -->
            <html>
                Welcome
                <?php
                    echo $_SESSION['luser'];
                    echo "<a href='http://localhost/somefolder/logout.php'>Log out</a>";
                ?>
            </html>
<?php
        }
    }
?>

LogOut.php

<?php
    session_start();
    session_destroy();
    header('Location: http://localhost/somefolder/login.php');
?>

42
तर्क और प्रस्तुति का संयोजन इस दिन और उम्र में बीमार है जब एमवीसी आदर्श है।
बोकोस्का

हो सकता है कि मुझे सत्रों के बारे में कुछ याद आ रहा हो, लेकिन अगर ओएस द्वारा हर 30 मिनट में सत्रों को नष्ट कर दिया जाए तो यह क्या अच्छा है?

25
@stillstanding अपने लिए बोलें [मुस्कान] मैं एमवीसी को एक घृणा के रूप में देखता हूं।

2
क्या MVC एक अच्छा विचार है, तब भी जब प्रोजेक्ट छोटा हो, एक एकल प्रोग्रामर के साथ? मुझे ऐसा लगता है कि मुझे एमवीसी मॉडल में अपनी परियोजनाएं बनानी चाहिए (या समस्या को हल करने के लिए इसे एमवीसी बनाना चाहिए) लेकिन एमवीसी के साथ अनुभव की कमी के साथ यह सिर्फ एक मानसिक ब्लॉक बन जाता है "मैं इस एमवीसी कैसे बनाऊं?" और प्रारंभिक लक्ष्य / समस्या से एक विचलित समाधान की आवश्यकता होती है।
MrVimes

@ एक और उल्लेख यह है कि Login.phpहेडर को सामग्री के बाद भेजा जाता है, जो खराब है।
मशीनीडक्ट

43

क्या यह एक निर्धारित समय के बाद उपयोगकर्ता को लॉग आउट करने के लिए है? सत्र सृजन समय (या एक समाप्ति समय) सेट करना जब यह पंजीकृत है, और फिर जाँच कर रहा है कि प्रत्येक पृष्ठ लोड पर इसे संभाल सकता है।

उदाहरण के लिए:

$_SESSION['example'] = array('foo' => 'bar', 'registered' => time());

// later

if ((time() - $_SESSION['example']['registered']) > (60 * 30)) {
    unset($_SESSION['example']);
}

संपादित करें: मुझे लग रहा है कि आपका मतलब कुछ और है।

आप session.gc_maxlifetimeini सेटिंग का उपयोग करके एक निश्चित जीवनकाल के बाद सत्रों को स्क्रैप कर सकते हैं :

संपादित करें: ini_set ('session.gc_maxlifetime', 60 * 30);


1
session.gc-maxlifetime जाने का सबसे अच्छा तरीका है।
पॉवरलॉर्ड

2
सत्र कुकी आजीवन के साथ कुछ मुद्दे हैं, सबसे विशेष रूप से, यह इसे लागू करने के लिए ग्राहक पर निर्भर करता है। कुकी का जीवनकाल बेकार / समाप्त कुकीज़ को साफ करने की अनुमति देने के लिए है, यह किसी भी सुरक्षा से संबंधित उलझन में नहीं है।
जैको

क्या यह gc_maxlifetimeया gc-maxlifetime। क्या यह अंडरस्कोर और हाइफ़न दोनों का समर्थन करता है?
माइक कॉसर

24

यह पोस्ट सत्र टाइमआउट को नियंत्रित करने के कुछ तरीके दिखाता है: http://bytes.com/topic/php/insights/889606-setting-timeout-php-session

IMHO दूसरा विकल्प एक अच्छा समाधान है:

<?php
/***
 * Starts a session with a specific timeout and a specific GC probability.
 * @param int $timeout The number of seconds until it should time out.
 * @param int $probability The probablity, in int percentage, that the garbage 
 *        collection routine will be triggered right now.
 * @param strint $cookie_domain The domain path for the cookie.
 */
function session_start_timeout($timeout=5, $probability=100, $cookie_domain='/') {
    // Set the max lifetime
    ini_set("session.gc_maxlifetime", $timeout);

    // Set the session cookie to timout
    ini_set("session.cookie_lifetime", $timeout);

    // Change the save path. Sessions stored in teh same path
    // all share the same lifetime; the lowest lifetime will be
    // used for all. Therefore, for this to work, the session
    // must be stored in a directory where only sessions sharing
    // it's lifetime are. Best to just dynamically create on.
    $seperator = strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN") ? "\\" : "/";
    $path = ini_get("session.save_path") . $seperator . "session_" . $timeout . "sec";
    if(!file_exists($path)) {
        if(!mkdir($path, 600)) {
            trigger_error("Failed to create session save path directory '$path'. Check permissions.", E_USER_ERROR);
        }
    }
    ini_set("session.save_path", $path);

    // Set the chance to trigger the garbage collection.
    ini_set("session.gc_probability", $probability);
    ini_set("session.gc_divisor", 100); // Should always be 100

    // Start the session!
    session_start();

    // Renew the time left until this session times out.
    // If you skip this, the session will time out based
    // on the time when it was created, rather than when
    // it was last used.
    if(isset($_COOKIE[session_name()])) {
        setcookie(session_name(), $_COOKIE[session_name()], time() + $timeout, $cookie_domain);
    }
}

19

अच्छी तरह से मुझे लगता है कि एब्स के उत्तर सही हैं, लेकिन वे आवेदन स्तर पर हैं, हम .htaccessसमय समाप्त करने के लिए फ़ाइल का उपयोग क्यों नहीं करते हैं ?

<IfModule mod_php5.c>
    #Session timeout
    php_value session.cookie_lifetime 1800
    php_value session.gc_maxlifetime 1800
</IfModule>

1
@ लॉड का उत्तर सही स्पष्टीकरण देता है कि यह उत्तर अविश्वसनीय क्यों नहीं होना चाहिए।
एमिक्स

15
if (isSet($_SESSION['started'])){
    if((mktime() - $_SESSION['started'] - 60*30) > 0){
        //Logout, destroy session, etc.
    }
}
else {
    $_SESSION['started'] = mktime();
}

15

session_set_cookie_paramsइसे बनाने के लिए कवक का उपयोग करें।

कॉल करने से पहले इस फ़ंक्शन को session_start()कॉल करना आवश्यक है ।

इसे इस्तेमाल करे:

$lifetime = strtotime('+30 minutes', 0);

session_set_cookie_params($lifetime);

session_start();

और देखें: http://php.net/manual/function.session-set-cookie-params.php


11

यह वास्तव में निम्नलिखित की तरह एक समारोह के साथ आसान है। यह 'id' और 'time' फ़ील्ड के साथ डेटाबेस टेबल नाम 'सत्र' का उपयोग करता है।

हर बार जब उपयोगकर्ता आपकी साइट या सेवा पर दोबारा जाता है, तो आपको इस फ़ंक्शन को यह जांचने के लिए आमंत्रित करना चाहिए कि क्या इसका रिटर्न मान TRUE है या नहीं। यदि यह FALSE है, तो उपयोगकर्ता समाप्त हो गया है और सत्र नष्ट हो जाएगा (नोट: यह फ़ंक्शन डेटाबेस को जोड़ने और क्वेरी करने के लिए डेटाबेस वर्ग का उपयोग करता है, निश्चित रूप से आप इसे अपने फ़ंक्शन या ऐसा कुछ के अंदर भी कर सकते हैं):

function session_timeout_ok() {
    global $db;
    $timeout = SESSION_TIMEOUT; //const, e.g. 6 * 60 for 6 minutes
    $ok = false;
    $session_id = session_id();
    $sql = "SELECT time FROM sessions WHERE session_id = '".$session_id."'";
    $rows = $db->query($sql);
    if ($rows === false) {
        //Timestamp could not be read
        $ok = FALSE;
    }
    else {
        //Timestamp was read succesfully
        if (count($rows) > 0) {
            $zeile = $rows[0];
            $time_past = $zeile['time'];
            if ( $timeout + $time_past < time() ) {
                //Time has expired
                session_destroy();
                $sql = "DELETE FROM sessions WHERE session_id = '" . $session_id . "'";
                $affected = $db -> query($sql);
                $ok = FALSE;
            }
            else {
                //Time is okay
                $ok = TRUE;
                $sql = "UPDATE sessions SET time='" . time() . "' WHERE session_id = '" . $session_id . "'";
                $erg = $db -> query($sql);
                if ($erg == false) {
                    //DB error
                }
            }
        }
        else {
            //Session is new, write it to database table sessions
            $sql = "INSERT INTO sessions(session_id,time) VALUES ('".$session_id."','".time()."')";
            $res = $db->query($sql);
            if ($res === FALSE) {
                //Database error
                $ok = false;
            }
            $ok = true;
        }
        return $ok;
    }
    return $ok;
}

9

सत्र में एक टाइमस्टैम्प स्टोर करें


<?php    
$user = $_POST['user_name'];
$pass = $_POST['user_pass'];

require ('db_connection.php');

// Hey, always escape input if necessary!
$result = mysql_query(sprintf("SELECT * FROM accounts WHERE user_Name='%s' AND user_Pass='%s'", mysql_real_escape_string($user), mysql_real_escape_string($pass));

if( mysql_num_rows( $result ) > 0)
{
    $array = mysql_fetch_assoc($result);    

    session_start();
    $_SESSION['user_id'] = $user;
    $_SESSION['login_time'] = time();
    header("Location:loggedin.php");            
}
else
{
    header("Location:login.php");
}
?>

अब, जांचें कि क्या टाइमस्टैम्प अनुमत समय खिड़की के भीतर है (1800 सेकंड 30 मिनट है)

<?php
session_start();
if( !isset( $_SESSION['user_id'] ) || time() - $_SESSION['login_time'] > 1800)
{
    header("Location:login.php");
}
else
{
    // uncomment the next line to refresh the session, so it will expire after thirteen minutes of inactivity, and not thirteen minutes after login
    //$_SESSION['login_time'] = time();
    echo ( "this session is ". $_SESSION['user_id'] );
    //show rest of the page and all other content
}
?>

8

कृपया अपनी शामिल फ़ाइल में कोड के ब्लॉक का उपयोग करें जो हर पृष्ठों में लोड किया गया है।

$expiry = 1800 ;//session expiry required after 30 mins
    if (isset($_SESSION['LAST']) && (time() - $_SESSION['LAST'] > $expiry)) {
        session_unset();
        session_destroy();
    }
    $_SESSION['LAST'] = time();

1

30 मिनट के लिए इस वर्ग का उपयोग करें

class Session{
    public static function init(){
        ini_set('session.gc_maxlifetime', 1800) ;
        session_start();
    }
    public static function set($key, $val){
        $_SESSION[$key] =$val;
    }
    public static function get($key){
        if(isset($_SESSION[$key])){
            return $_SESSION[$key];
        } else{
            return false;
        }
    }
    public static function checkSession(){
        self::init();
        if(self::get("adminlogin")==false){
            self::destroy();
            header("Location:login.php");
        }
    }
    public static function checkLogin(){
        self::init();
        if(self::get("adminlogin")==true){
            header("Location:index.php");
        }
    }
    public static function destroy(){
        session_destroy();
        header("Location:login.php");
    }
}

0

टाइमस्टैम्प का उपयोग ...

<?php
if (!isset($_SESSION)) {
    $session = session_start();
} 
if ($session && !isset($_SESSION['login_time'])) {
    if ($session == 1) {
        $_SESSION['login_time']=time();
        echo "Login :".$_SESSION['login_time'];
        echo "<br>";
        $_SESSION['idle_time']=$_SESSION['login_time']+20;
        echo "Session Idle :".$_SESSION['idle_time'];
        echo "<br>";
    } else{
        $_SESSION['login_time']="";
    }
} else {
    if (time()>$_SESSION['idle_time']){
        echo "Session Idle :".$_SESSION['idle_time'];
        echo "<br>";
        echo "Current :".time();
        echo "<br>";
        echo "Session Time Out";
        session_destroy();
        session_unset();
    } else {
        echo "Logged In<br>";
    }
}
?>

मैंने टाइमस्टैम्प का उपयोग करके सत्र को समाप्त करने के लिए 20 सेकंड का उपयोग किया है

अगर आपको 30 मिनट जोड़ने की आवश्यकता है 1800 (सेकंड में 30 मिनट) ...


0

आप इसे विकल्प के रूप में करने के लिए किसी DB का उपयोग कर सकते हैं। मैं इसे करने के लिए DB फ़ंक्शन का उपयोग करता हूं जिसे मैं chk_lgn कहता हूं।

यह देखने के लिए कि वे लॉग इन हैं या नहीं, यह देखने के लिए लॉगिन चेक की जाँच करें, ऐसा करने के लिए, यह उपयोगकर्ता के डीबी पंक्ति / कॉलम में अंतिम सक्रिय के रूप में चेक की तारीख का समय निर्धारित करता है।

मैं वहां समय जांच भी करता हूं। यह मेरे लिए इस समय के लिए काम करता है क्योंकि मैं हर पृष्ठ के लिए इस फ़ंक्शन का उपयोग करता हूं।

पीएस कोई नहीं मैंने देखा था एक शुद्ध DB समाधान का सुझाव दिया था।



-1

बस वर्तमान समय को स्टोर करें और यदि तुलना करके यह 30 मिनट से अधिक है तो वर्तमान सत्र को नष्ट कर दें।


केवल एक बार आप मूल्यांकन करेंगे कि सत्र का उपयोग करते समय, सही है?
एरिक क्रेमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.