Как определить, был ли редирект?

118
26 апреля 2021, 05:30

Есть метод, который производит редирект. Необходимо модифицировать или переписать его так, что бы перед редиректом он проверял, не было ли редиректа раньше, и, если был, реагировать на это.
Как можно реализовать проверку на наличие редиректа?

Это нужно, что бы избежать любых повторных редиректов и оперативно реагировать, если из-за чьей-то ошибки они появятся.

Гет параметры использовать нельзя, урл должен оставаться чистым.
Возможно что-то с $_SERVER['HTTP_REFERER'], но пока не придумал, как это можно использовать.
Не могли бы вы мне помочь? Зараннее спасибо.

Answer 1

Если используются сессии - попробуйте при редиректе выставить контрольное значение в сессионном ханилище, типа хэш параметров запроса плюс таймстамп обращения. И при проверке "а был ли мальчик?" (в смысле редирект) смотрите разницу с таймстампом, а если возможны различные параметры в URL - проверьте заодно хэш этих параметров. По крайней мере, это позволит определить время последнего редиректа с этими параметрами в рамках сессии.

А в принципе есть стандартный механизм передачи данных "на один раз" до следующей обработки сессии вроде session flash в Laravel. Если есть возможность - воспользуйтесь одной из реализаций этого механизма, доступной для Вашего проекта, для передачи признака "повторного" редиректа.

READ ALSO
Проблема с Laravel Steam Auth

Проблема с Laravel Steam Auth

следующая проблема: Использую данный пакет: https://githubcom/invisnik/laravel-steam-auth

109
Как узнать на какой строке echo

Как узнать на какой строке echo

в wp с помощью ajax получаю данные из functionphp но в месте с данными выводится какой-то 0

93