我首先通过序列化将一个USER对象存储在会话中,而不是试图在同一页面上使用它来测试它,但是它不会检索初始化的数据,所有内容都是空白的。
$user = new User();
echo '<br/>' . $user->getUsername(); // Gives me corerct data
userSession(serialize($user)); // Stored into session
$userObj = unserialize($_SESSION['userObj']); // Still get an object of type User
echo $userObj->getUsername(); // This returns blank unlike the first call
如果有人可以帮助我,我们将不胜感激,谢谢!
userSession代码
function userSession($userObj){
session_start();
$_SESSION['userObj'] = $userObj;
}
USER CLASS
class User{
protected $pdo;
private $id, $username, $banned, $email, $first_name, $last_name, $mobile_phone, $city, $address, $postal_code, $user_type, $active;
// Create a user
public function __construct(){
$con = new Connection();
try{
$this->pdo = $con->getConnection();
}catch (PDOException $e){
echo $e->getMessage(); // Store to file
}
}
答案 0 :(得分:0)
不是序列化完整的User
类,而是尝试仅序列化数据并使用相同的数据创建新对象。
基本上,您要做的是添加User->getData()
和User->setData()
,其中一个将返回与您可以保存的格式相关的所有数据(JSON,可序列化数组),另一个允许您要创建一个新的User
对象并重新加载此数据。