【发布时间】:2023-03-25 14:30:01
【问题描述】:
我首先通过序列化将 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
如果有人可以帮助我,将不胜感激,谢谢!
用户会话代码
function userSession($userObj){
session_start();
$_SESSION['userObj'] = $userObj;
}
用户类别
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
}
}
【问题讨论】:
-
你
session_start()总是在调用你的用户对象之前吗? -
你能显示
userSession()的代码吗?这是一个很大的缺失步骤,可能会产生影响。 -
显示序列化/反序列化方法的代码
-
@WaldsonPatricio
serialize()是原生 PHP 函数。 -
添加 User 类,那里可能发生了什么导致您的问题。
标签: php serialization deserialization