Флеш сообщения в PHP

Иногда при редиректе нужно передать некоторую информацию с одной страницы на другую. Например, чтобы вывести на целевой странице какое-нибудь текст для пользователя

Такие сообщения называются флеш ([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'] = []; // очистим сообщения } ?>

Реализуйте описанные флеш сообщения. Проверьте их работу.