Флэш-сообщения на основе сеанса и перезапуск сеанса

Я использую класс сообщений на основе флэш-памяти для предоставления пользовательских сообщений.

На определенной странице под названием «Резервное копирование» пользователь может восстановить резервную копию, и она выполнит восстановление, а затем выполнит следующие действия (пользовательские функции говорят сами за себя):

ASSession::destroySession();
ASSession::startSession();
$mg = new Messages();
$mg->add('s', $prepend);
redirect("login.php");

Проблема, как я увидел, заключалась в том, что когда мы уничтожаем сеанс, мы должны начать новый, чтобы отображались сообщения (которые используют переменные сеанса для хранения сообщений). Тем не менее, как только пользователь попадает на страницу входа в систему после перенаправления, страница вызывает основной «каркасный» файл, который также вызывает ASSession::startSession(), Поэтому я решил, что сначала проверим, есть ли у нас идентификатор сеанса в startSession() функция, так как мы должны были начать сеанс до перенаправления, поэтому нет необходимости начинать новый сеанс, когда мы достигаем входа в систему, поскольку это также удалит сообщение, прежде чем пользователь сможет его просмотреть.

Итак, я сделал это изменение:

public static function startSession()
{
if (!session_id()) {
ini_set('session.use_only_cookies', SESSION_USE_ONLY_COOKIES);
$cookieParams = session_get_cookie_params();
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], SESSION_SECURE, SESSION_HTTP_ONLY);
session_start();
//session_regenerate_id(SESSION_REGENERATE_ID);
}
}

Но безрезультатно. Я запустил всю находку для всего сайта session_start() чтобы увидеть, начиналось ли оно где-то еще, не проверяя, началось ли оно уже и что получилось отрицательным. Итак, мой вопрос: почему мой сеанс перезапускается после того, как я его запустил, если единственная функция, которая занимается запуском сеанса, проверяет, запущен ли сеанс в данный момент? Потому что мои сообщения не отображаются 🙁

Примечание: я стараюсь избегать страшных ?success='It worked' а также echo $_GET['success'];

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]