簡體   English   中英

PHP將會話數據存儲在類中

[英]PHP store session data in class

我正在將PHP會話變量存儲到數據庫中,並且存在一些問題。 我想知道你們是否可以給我一個更好的解決方案,或者如果我理解上有任何錯誤,請告訴我。 謝謝。

首先,我將用戶輸入存儲在PHP會話變量中。 我還不能將該會話數據插入數據庫,因為我需要等待其他用戶輸入(此輸入將與會話數據同時插入數據庫)。 會話有時間限制(60秒)。 我需要一個臨時存儲會話數據的地方。 如果會話結束,數據將消失。

我認為存儲會話數據的位置將是對象。 也許制作一個類來存儲會話數據。 當用戶提供其他輸入時,請從該對象中提取數據並插入數據庫中。 我沒有在PHP中使用任何面向對象的概念,所以我想知道此過程是否有效。

非常感謝。

我處理會話的方式是使用單例模式:

class Session {
    private static $_instance;
    private $id;
    private $data;

    private function __clone() {}
    private function __construct() {
        session_start();

        $this->id   = session_id();
        $this->data =& $_SESSION;
    }

    public static function open() {
        if ( ! (self::$_instance instanceof self)) {
            self::$_instance = new self();
        }

        return self::$_instance;
    }

   public function __set($name, $value) {
     $this->data[$name] = $value;
   }

   public function __get($name) {
     return isset($this->data[$name]) ? $this->data[$name] : null;
   }
}

這樣,您的會話數據將存儲在$ data變量中,並且可以通過重載進行訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM