Иногда при редиректе нужно передать некоторую информацию с одной страницы на другую. Например, чтобы вывести на целевой странице какое-нибудь текст для пользователя
Такие сообщения называются флеш ([t]flash[/t]) сообщениями. Такое название выбрано потому, что сообщение должно показаться только один раз, а при обновлении страницы исчезнуть.
Давайте реализуем описанное. Пусть на странице
page.php
мы записываем в сессию некоторое
сообщение и выполняем редирект на другую страницу:
<?php
session_start();
$_SESSION['flash'] = 'сообщение';
header('Location: index.php');
?>
На странице index.php
выведем сообщение
и удалим его из сессии во избежание повторного
показа:
<?php
session_start();
if (isset($_SESSION['flash'])) {
echo $_SESSION['flash'];
unset($_SESSION['flash']);
}
?>
Реализуйте описанные флеш сообщения. Проверьте их работу.
Массив флеш сообщений
Может быть такое, что нам необходимо показывать не одно сообщение, а несколько. В этом случае нам нужно сделать массив сообщений.
Пусть на странице page1.php
записывается
первое сообщение:
<?php
session_start();
$_SESSION['flash'][] = 'сообщение 1';
?>
А на странице page2.php
записывается
второе сообщение:
<?php
session_start();
$_SESSION['flash'][] = 'сообщение 2';
?>
Покажем эти сообщения на странице index.php
и очистим массив с сообщениями:
<?php
session_start();
if (!empty($_SESSION['flash'])) {
foreach ($_SESSION['flash'] as $flash) {
echo $flash;
}
$_SESSION['flash'] = []; // очистим сообщения
}
?>
Реализуйте описанные флеш сообщения. Проверьте их работу.