Задать вопрос
@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 не работает.
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
сессия хранит только элементарные типы, представляемые в виде строк. Что логично, ибо это суть файл, либо аналогичное хранилище. Для того чтобы работала подобная магия нужно:
а) удалить из объекта все ссылки на ресурсы, которые будут мешать сериализации, если таковые имеются
б) сериализовать объект и записать в сессию

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

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

Похожие вопросы