php - 序列化()和$_SESSION

标签 php session serialization

<分区>

一旦用户通过身份验证,我就序列化类对象并将其存储在 session 中。但是,即使在使用 unserialize() 之后,我似乎也无法打印它的输出。

创建 session 变量:

if(!isset($_SESSION['myObj']) && empty($_SESSION['myObj'])) {
$myObj = new User($row['user_id'], $row['username'], $row['user_level']);
$_SESSION['username']= $myObj->usr_name;
$s_Obj = serialize($myObj);
$_SESSION['myObj'] = $s_Obj;

从不同的页面访问,无输出:

$sObj = $_SESSION['Obj'];
$myObj = unserialize($s_Obj);
echo $myObj->usr_name;

但是这有效,所以我的类(class)没有任何问题。我还在两个页面中使用了 session_start()

echo $_SESSION['username'];

类用户:

<?php 

class User{
    public $usr_id;
    public $usr_name;
    public $usr_level;
    public $last_access_login;

    public function __construct($id, $usr_name, $usr_level) {
        $this->usr_id = $id;
        $this->usr_name = $usr_name;
        $this->usr_level = $usr_level;
        $this->last_access_login = date("F d Y H:i:s.",time());
  }
}
?>

编辑:

这是我的转储

array
  'myObj' => 
    object(__PHP_Incomplete_Class)[1]
      public '__PHP_Incomplete_Class_Name' => string 'User' (length=4)
      public 'usr_id' => string '3' (length=1)
      public 'usr_name' => string 'student' (length=7)
      public 'usr_level' => string '3' (length=1)
      public 'last_access_login' => string 'November 26 2011 20:12:38.' (length=26)
  'url' => string '/researchportal/proposal' (length=24)

最佳答案

初始页:

$s_Obj = serialize($myObj);
$_SESSION['myObj'] = $s_Obj;

应该是

$_SESSION['myObj'] = $myObj;

下一页:

$sObj = $_SESSION['Obj'];
$myObj = unserialize($s_Obj);

应该是

$myObj = $_SESSION['myObj'];

此外,尝试在调用 session_start() 之前声明您的类。

关于php - 序列化()和$_SESSION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8281188/

相关文章:

python - 具有多个嵌套对象的 Django Rest Framework 可写嵌套序列化程序

php - 调用 php 函数通过 ajax 显示我的帖子后,似乎无法访问 $wpdb

laravel - laravel 如何从 session 中获取用户 ID?

jquery - CakePHP + jQuery AJAX 回调 - 不通过 $session->flash() 删除 session ;

php - 如何将 PHP 对象传递给 Python,反之亦然

json - 如何创建简单的 Typescript 元数据注释

php - 使用 php 和 mysql 进行搜索

php - codeigniter在哪里创建和销毁mysql连接以及db类单例?

php - 类不存在,反射错误

php - 如何用不同的ip捕获同一个用户