@yagyar001

Почему не выводится сообщение из сессии при редиректе?

Всем привет. Не выводится сообщение из сессии. Вообще если закомментировать header('Location: ../index.php'); на странице login.php, то в сессию записывается и выводится на этой же странице. Но когда редирект на главную страницу, почему то приходит пустой массив $_SESSION. Сессию стартовал на index.php. Туда подключается файл top_content.php, а к нему уже все остальные в зависимости от условий. Помогите разобраться. Почему не приходит массив?
Файл index.php
<?php include 'connectdb.php';
		error_reporting(E_ALL);
		ob_start();
		session_start();
 ?>
<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
	<link rel="stylesheet" href="css/style.css?v=1">
	<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,700,900" rel="stylesheet">
	<title>Forum</title>
</head>
<body>
	<header id="header">
		<?php 
			include 'pages/header.php'; 
		?>
	</header>
	<div class="top_content">
		<?php include 'pages/top_content.php'; ?>
	</div>
	<footer>
		<?php var_dump($_SESSION); ?>
	</footer>
</body>
</html>

Файл top_content.php
<?php 
ob_start();
error_reporting(E_ALL);
	if (isset($_GET['reg'])) {
		include 'elems/register.php';
	} elseif (isset($_POST['login']) and isset($_POST['pass'])) {
		include '../elems/login.php';
	} else {
		include 'elems/rows_themes.php';
	}

Файл login.php (с которого происходит редирект и в котором записываю сообщение в сессию)
<?php 
		error_reporting(E_ALL);
		include '../connectdb.php';
		$query = "SELECT * FROM users WHERE login = '$_POST[login]'";
		$result = mysqli_query($link, $query) or die (mysqli_error($link));
		$user = mysqli_fetch_assoc($result);
		if (empty($user)) {
			$_SESSION['error'] = "Пользователя не существует";
			header('Location: ../index.php');
		} else {
			echo "Есть такой";
		}
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
@yagyar001 Автор вопроса
Причина найдена. В файле login.php нужно было стартовать сессию.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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