成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

重寫session的保存機制!

ybak / 1872人閱讀

摘要:當我們所做的系統(tǒng)相對來說比較大的時候,可能會用到的共享機制如呵實現(xiàn)的共享,有很多的方法,但是,在中,個人認為首先要實現(xiàn)對的重寫,才能進一步往下談的共享如果實現(xiàn)的重寫機制呢為我們提供了重寫的函數(shù),我們只需要應用即可操作數(shù)據(jù)庫的對象構(gòu)造函數(shù),連

當我們所做的系統(tǒng)相對來說比較大的時候,可能會用到session的共享機制!如呵實現(xiàn)session的共享,有很多的方法,但是,在php中,個人認為首先要實現(xiàn)對session的重寫,才能進一步往下談session的共享!

如果實現(xiàn)session的重寫機制呢?php為我們提供了重寫的函數(shù),session_set_save_handle()我們只需要應用即可!

_db = new Core_DB($config);
        }

        /**
         *  開始session機制時自動調(diào)用,即調(diào)用session_start()后馬上回調(diào)該函數(shù)
         *
         *  @param string $sessionSavePath session文件的存儲路徑
         *  @param string $sessionName 默認為PHPSESSID
         *  @return boolan
         *  @access public
         */
        public function open($sessionSavePath, $sessionName)
        {
            /* 我們也可以在這里連接數(shù)據(jù)庫 */
            return true;
        }

        /**
         *  在腳本執(zhí)行完畢后,在write回調(diào)之后,進行調(diào)用
         *
         *  @access public
         *  @return boolean
         */
        public function close()
        {
            mysql_close($this->_db->_connectid);
            return true;
        }

        /**
         *  開啟session機制后自動調(diào)用,在open回調(diào)之后馬上調(diào)用
         *
         *  @param string $sessionID
         *  @return String
         *  @access public
         */
        public function read($sessionID)
        {
            $returnData = "";
            $sessionID = trim($sessionID);
            $sql = " select * from session where session_id="$sessionID" ";
            $sessionRecord = $this->_db->getToArray($sql);
            if(is_array($sessionRecord)) {
                $returnData = $sessionRecord["sessiondata"];
            }
            return $returnData;
        }

        /**
         *  當腳本執(zhí)行完畢后,回調(diào)該函數(shù)
         *
         *  @param $sessionID string
         *  @param string $sessionData 要保存的session數(shù)據(jù)
         *  @return mixed
         *  @access public
         */
        public function write($sessionID, $sessionData) 
        {
            $result = false;
            $sessionID = trim($sessionID);
            $sessionData = trim($sessionData);
            if(!empty($sessionData)) {
                $addTime = date("Y-m-d H:i:s");
                $sql = " select * from session where session_id = "$sessionID" ";
                $sessionRecord = $this->_db->query($sql);//boolean
                if(count($sessionRecord)) {//存在更新
                    $sql = " update session set sessionData = "$sessionData", addtime = "$addTime" where session_id = "$sessionID" ";
                } else {//不存在,插入
                    $sql = " inset into session values ("$sessionID", "$sessionData", "$addTime") ";
                }
                $this->_db->query($sql);
            }
            return $result;
        }

        /**
         *  當調(diào)用session_destory()函數(shù)的時候,對該函數(shù)進行回調(diào)
         *
         *  @param string $sessioinID
         *  @return boolean
         *  @access public
         */
        public function destory($sessionID)
        {
            $result = false;
            $sql = " delete from session where session_id = "$sessionID" ";
            $result = $this->_db->query($sql);
            return $result;
        }

        /**
         *  session的垃圾回收機制,當session數(shù)據(jù)超過了靜默時間,按照概率刪除 默認概率:1/1000
         *
         *  @param $maxliefttime 靜默時間,默認為1440秒
         *  @access public
         *  @return boolean
         */
        public function gc($maxlifetime)
        {
            $result = false;
            $expireTime = time()-$maxlifetime;
            $sql = " delete from session where addtime < $expireTime ";
            $result = $this->_db->query($sql);
            return $result;
        }
    }
    $session = new Session();
    session_set_save_handler(
                                array($session, "open"),
                                array($session, "close"),
                                array($session, "read"),
                                array($session, "write"),
                                array($session, "destory"),
                                array($session, "gc")
                            );
    session_start();
?


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/20800.html

相關文章

  • Cookie與Session區(qū)別

    摘要:的作用就是為了解決協(xié)議無狀態(tài)的缺陷所作的努力。路徑與域一起構(gòu)成的作用范圍。這種生命期為瀏覽器會話期的被稱為會話。而機制采用的是一種在服務器端保持狀態(tài)的解決方案??缬蛎缃癖黄毡橛迷诰W(wǎng)絡中,例如等。僅在他所在的域名內(nèi)有效。 前言 本文分別對Cookie與Session做一個介紹和總結(jié),并分別對兩個知識點進行對比分析,讓大家對Cookie和Session有一個更深入的了解,并對自己的開發(fā)工...

    kumfo 評論0 收藏0
  • Cookie/Session機制詳解

    摘要:要跟蹤該會話,必須引入一種機制。服務器檢查該,以此來辨認用戶狀態(tài)。提示中保存中文只能編碼。不推薦使用等中文編碼,因為瀏覽器不一定支持,而且也不支持編碼。這是由的隱私安全機制決定的。隱私安全機制能夠禁止網(wǎng)站非法獲取其他網(wǎng)站的。會話(Session)跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Session。Cookie通過在客戶端記錄信息確定用戶身份...

    番茄西紅柿 評論0 收藏0
  • 理解HTTP session原理及應用

    摘要:理解原理及應用一術(shù)語在我的經(jīng)驗里,這個詞被濫用的程度大概僅次于,更加有趣的是與在某些語境下的含義是相同的。其中的作用就是為了解決協(xié)議無狀態(tài)的缺陷所作出的努力。 理解HTTP session原理及應用 一、術(shù)語session 在我的經(jīng)驗里,session這個詞被濫用的程度大概僅次于transaction,更加有趣的是transaction與session在某些語境下的含義是相同的。 ...

    dreamGong 評論0 收藏0
  • session和cookie

    摘要:的作用就是為了解決協(xié)議無狀態(tài)的缺陷所作的努力。的內(nèi)容主要包括名字,值,過期時間,路徑和域。這種生命期為瀏覽器會話期的被稱為會話。而機制采用的是一種在服務器端保持狀態(tài)的解決方案。中的有效期默認分鐘,也就是說,客戶端超過分鐘,當前就會失效。 會話控制是什么? cookie和session都是跟蹤整個會話過程的技術(shù)手段。而會話,就是用戶通過瀏覽器和服務器的一次通話。 為什么要有會話控制? 因...

    ruicbAndroid 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<