嚴格控制session過期方法 原

嚴格控制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]);
    }

}
?>

使用方法

<?php
session_start();

$data = '123456';
session::set('test', $data, 10);
echo session::get('test'); // 未過期,輸出
sleep(10);
echo session::get('test'); // 已過期
?>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章