PHP session_decode无法正常工作?

时间:2015-04-19 13:28:37

标签: php

我有一个session_set_save_handler函数写。

function write($id, $data) {
    GLOBAL $mysqli_link;

    $data = session_decode($data);
    $data = $data['user'];

    $access = time();
    $stmt = $mysqli_link->prepare("REPLACE INTO sessions VALUES (?,?,?)");
    $stmt->bind_param('sss', $id, $access, $data);
    $stmt->execute();

    return true;
}

和此:

session_start();

$_SESSION["user"]   = "josh";

我的问题是,我想得到这个用户(josh),但session_decode无效。怎么了?

如果我使用session_decode,它会将NULL写入我的数据库。如果没有,它会写user|s:4:"josh"; 我想要乔什。

1 个答案:

答案 0 :(得分:1)

手册:

  

bool session_decode(string $ data)

     

session_decode()解码提供的序列化会话数据   $data使用结果填充$_SESSION超全球

http://php.net/manual/en/function.session-decode.php

请注意bool返回值和关于$_SESSION的粗体线。这不符合你的想法。您是否尝试过简单$_SESSION['user']

可能也很有用(从同一页面):

  

请注意反序列化方法与unserialize() 不同。序列化方法是PHP的内部方法,可以使用session.serialize_handler进行设置。