Laravel: Показать сообщение (предупреждение) на всех открытых вкладках, если переменная сеанса изменилась - PullRequest
1 голос
/ 24 июня 2019

Laravel Версия: 5.2.45

Версия PHP: ^ 5.4

У меня есть переменная сеанса с именем f_year.Он хранит финансовый год в сессии.Это может быть изменено пользователем.При изменении f_year сеанс сбрасывается и страница перезагружается.

Проблема в том, что пользователь изменяет f_year на одной вкладке и, не обновляя другую вкладку, сохраняет данные.И год не совпадает.

Можно ли отобразить предупреждение на других открытых вкладках : Ваш финансовый год изменился.Пожалуйста, перезагрузите страницу, чтобы продолжить.

Ответы [ 3 ]

1 голос
/ 24 июня 2019

Другое решение: связать сессию с выбранным годом (сохраняется на БД сервера и добавляется на каждую страницу).Когда пользователь меняет год, связанный сеанс удаляется (идентификатор сеанса пользователя изменен).Поскольку пользователь попытается сохранить данные в удаленном сеансе, вы можете ответить пользователю: «Год изменился, страница была перезагружена).

Поскольку я говорю о сеансе, это может быть любая информация в$ _SESSION []. Таким образом, вы должны дважды проверить Год на сервере, чтобы он совпадал с годом в каждом запросе пользователя.

1 голос
/ 26 июня 2019

Ну, на днях я столкнулся с подобной проблемой.Я сначала установил cookie и переменную сеанса (используя PHP).Затем я использовал JQuery для получения значения cookie.Метод cookie JQuery извлекает текущий набор файлов cookie (независимо от вкладки браузера).

Затем я сравнил эти два значения и предупредил пользователя о несоответствующих настройках.

Надеюсь, это поможет!

0 голосов
/ 24 июня 2019

@ user9141607, вы можете обновить Laravel до 5.3 и использовать Laravel Broadcasting для обновления информации в реальном времени на странице без обновления.

...