Всем привет. Не выводится сообщение из сессии. Вообще если закомментировать
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 "Есть такой";
}