我有一个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";
我想要乔什。
答案 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
进行设置。