2016-10-02 2 views
2

Нужна помощь. Я получаю следующие ошибкиИспользовать переменную сеанса как объект в PHP

Fatal error: Call to a member function getName() on string in......

Это относится к линии на от index.php

$session->getName() 

кода.

index.php

include 'classes/user.php'; 
$session = isset($_SESSION['userObj']) ? $_SESSION['userObj'] : ""; 
include 'login.php'; 

$session->getName() 

login.php

session_start(); 
$user = new User(); 
$user->setAll($db_id,$db_fullname,$db_username,$db_rights, $db_last_login,$db); 

$_SESSION['userObj'] = $user; 

Как вы передаете объекты правильно с помощью сеанса Варс? Я проверил этот сайт, и он посоветовал сделать это, как у меня.

Я знаю, что я не делаю инструкции else прямо на части isset. Должен ли я делать.

else{ $session = new User();} 

ответ

0

Использование serialize()

//Set object as session 
$user = new User(); 
$_SESSION['userObj'] = serialize($user); 

//Get object 
$user = unserialize($_SESSION['userObj']); 

FYI, не забудьте написать session_start(); на первой строке каждой страницы, чтобы использовать $_SESSION.

+0

То, что исправила проблему ... У меня был session_start(); только в login.php ... и в index.php $ user = $ _SESSION ['userObj']; был ниже: «login.php» ... Вскоре, когда я положил, включите выше $ user line, он сработал. Спасибо за сериализуемую часть – Leo505

+0

Отлично, не забудьте перевернуть для справки в будущем ..Все лучшее –

Смежные вопросы