@supercoder666

Почему из MySQL базы данных не выводится login?

Здравствуйте. Делаю скрипт авторизации и регистрации. Регистрация и авторизация работают безупречно. Но после авторизации login пользователя не выводится, а при дампе показывает, что там NULL. Очень странно. Не могу понять что передается в сессии этой переменной.
<?php 
	session_start();
	require_once 'connect.php';
	require_once 'config.php';

	if (isset($signInBtn)) 
	{
		$erLog = array();
		$user = R::findOne('users', 'login = ?', array($login));
			if ($user) 
			{
				// логин есть, проверка пароля
				if (sha1($password) == $user->password) 
				{
					// пароль есть, залогинивание
					$_SESSION['signined'] = $user;
					header('Location: ../index.php');
				} 
				else 
				{
					$erLog[] = "Пароль введен неверно";
				}
			} 
			else 
			{
				$erLog[] = "Пользователя с таким именем не существует";
			}
			if (!empty($erLog)) {
				$_SESSION['message'] = array_shift($erLog);
			}

	}
 ?>

<?php
session_start();
require_once 'connect.php'; 
?>
<?php 

if (isset($_SESSION['signined'])) 
{
	echo "Вы авторизованы, ";
	echo $_SESSION['signined']->login;
	echo '<a href="logout.php"> Выйти</a><br><br>';
} 
else
{
	$_SESSION['message'] = 'Для доступа к этой странице необходимо авторизоваться';
	header('Location: ../login.php');
}
 ?>

UPD. И только сейчас увидел, что и logout не работает.
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
сессия хранит только элементарные типы, представляемые в виде строк. Что логично, ибо это суть файл, либо аналогичное хранилище. Для того чтобы работала подобная магия нужно:
а) удалить из объекта все ссылки на ресурсы, которые будут мешать сериализации, если таковые имеются
б) сериализовать объект и записать в сессию

и в обратном порядке для чтения:
а) Загрузить класс объекта который вы будете получать (иначе магии не получится)
б) Десериализовать из сессии и добавить в объект все ссылки на нужные ресурсы, например ссылку на объект бд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект