簡體   English   中英

設置php會話(session_set_save_handler)

[英]setting up php session (session_set_save_handler)

我正在嘗試使用php和mysql設置用戶登錄/注銷系統。 我在這里找到了有關此主題的一些文檔: http : //phpmaster.com/writing-custom-session-handlers/ 我正在嘗試遵循它(我也一直在從其他渠道獲取信息-但這是主要的來源)。

這是來自“ my_session_handler.php”的一些代碼:

class MySessionHandler implements SessionHandlerInterface {

    private $path = session_save_path();
    private $name = session_name();
    private $sessionId = session_id();

    function open($path, $name) {
        $db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");

        $sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data = '' ON DUPLICATE KEY UPDATE session_lastaccesstime = NOW()";
        $db->query($sql);    


    ...

我的問題是,上面引用的示例中的“ $ path”和“ $ name”變量來自哪里? 我將它們聲明為私有變量,並使用一些函數來完成我認為需要做的事情。 但是在我關注的網站上-沒有聲明這些變量-以及$ sessionId。 我看到讀取函數返回$ data。 因此,我在“寫入”函數中使用了它,如下所示:

function write($sessionId, this.read($sessionId)) { 
    $db = new PDO("mysql:host=localhost;dbname=itit", "root", "bonjour3");

    $sql = "INSERT INTO session SET session_id =" . $db->quote($sessionId) . ", session_data =" . $db->quote($data) . " ON DUPLICATE KEY UPDATE session_data =" . $db->quote($data);
    $db->query($sql)
}

我這樣做對嗎?

這些參數由默認的會話保存處理程序使用,該處理程序將會話數據保存在文件中。 它們來自php.ini文件,用於形成文件名。 當PHP調用open()方法時,會將它們提供給您的處理程序。

如果要編寫自定義處理程序,則可以忽略它們,就像該網頁上的代碼一樣。

暫無
暫無

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

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