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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽