日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

php設置過期時間session方法:首先使用memcache或Redis來保存session,設置過期時間;然后創建一個session類,在session寫入時,把過期時間也寫入;最后讀取時,根據過期時間判斷是否已過期即可。


php設置過期時間的session方法:

一、php session 有效期

PHP的session有效期默認是1440秒(24分鐘),如果客戶端超過24分鐘沒有刷新,當前session會被回收,失效。

當用戶關閉瀏覽器,會話結束,session也會失效。

可以修改php.ini的session.gc_maxlifetime來設置session的生命周期,但并不能保證在超過這一時間后session信息立即會刪除。因為GC是按機率啟動的,可能在某一個長時間內都沒有被啟動。那么大量的session在超過session.gc_maxlifetime后仍然有效。

二、.session.gc_maxlifetime,session.gc_probability,session.gc_divisor說明

session.gc_maxlifetime = 30 表示當session文件在30秒后沒有被訪問,則視為過期session,等待GC回收。

GC進程調用的概率是通過session.gc_probability/session.gc_divisor計算得來的,而session.gc_divisor默認是1000,

如果session.gc_probability = 1000,那么GC進程在每次執行session_start()時都會調用,執行回收。

把session.gc_probability/session.gc_divisor的機率提高,會有幫助,但會對性能造成嚴重影響。

三、嚴格控制session過期方法

1、使用memcache/Redis來保存session,設置過期時間,因為memcache/redis的回收機制不是按機率的,可以確保session過期后失效。

2、只使用php實現,創建一個session類,在session寫入時,把過期時間也寫入。讀取時,根據過期時間判斷是否已過期。

<?php
/**
 * Session控制類
 */
class Session{
    /**
     * 設置session
     * @param String $name  session name
     * @param Mixed $data  session data
     * @param Int  $expire 超時時間(秒)
     */
    public static function set($name, $data, $expire=600){
        $session_data = array();
        $session_data['data'] = $data;
        $session_data['expire'] = time()+$expire;
        $_SESSION[$name] = $session_data;
    }
    /**
     * 讀取session
     * @param String $name session name
     * @return Mixed
     */
    public static function get($name){
        if(isset($_SESSION[$name])){
            if($_SESSION[$name]['expire']>time()){
                return $_SESSION[$name]['data'];
            }else{
                self::clear($name);
            }
        }
        return false;
    }
    /**
     * 清除session
     * @param String $name session name
     */
    private static function clear($name){
        unset($_SESSION[$name]);
    }
}
?>

demo:

<?php
session_start();
$data = '123456';
session::set('test', $data, 10);
echo session::get('test'); // 未過期,輸出
sleep(10);
echo session::get('test'); // 已過期
?>



分享到:
標簽:PHP如何設置 過期時間 session
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定