Serialize () and $ _SESSION

After authenticating the user, I serialize the class object and save it in the session. However, I cannot print my output even after using unserialize ().

Creating a session variable:

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;

Access to another page without output:

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

This works, so there is nothing wrong with my class. I also use session_start()on both pages.

echo $_SESSION['username'];

Class User:

<?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());
  }
}
?>

Edit:

This is my vardump

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)
+5
source share
2 answers

Invitation page:

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

it should be

$_SESSION['myObj'] = $myObj;

Next page:

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

it should be

$myObj = $_SESSION['myObj'];

Also, try declaring your classes before calling session_start().

+7
source

__PHP_Incomplete_Class_Name, User . . . User, .

+2

All Articles