Я храню объект 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
}
}
Вместо того, чтобы сериализовать полный User
класс, попробуйте сериализовать только данные и использовать те же данные для создания нового объекта после.
По сути, вы должны добавить User->getData()
а также User->setData()
где один возвращает все релевантные данные в формате, который вы можете сохранить (JSON, serializable Array), а другой позволит вам создать новый User
объект и загрузить эти данные обратно в.
Других решений пока нет …