Есть ли способ определить, обновил ли кто-то текущую страницу с помощью PHP, а не прибыл из другого места.
У меня есть доступ только к коду для текущей страницы, поэтому я не могу передать что-либо со страницы в другом месте для проверки.
Название вашего вопроса предполагает, что вы специально ищете способ обнаружения, когда страница обновляется с помощью клавиши F5. Если это так, вам определенно потребуется JavaScript, чтобы определить, был ли нажат ключ. Если вам все равно, как обновилась страница, то этот ответ должен помочь: https://stackoverflow.com/a/456915/1144176 . Он учитывает полный URL-адрес, а также содержимое любой формы.
Добавьте событие unload()
которое либо устанавливает cookie, либо запускает сеанс PHP через AJAX. Затем, когда страница будет загружена, проверьте файл cookie или сеанс – если он присутствует и совсем недавно, пользователь только что обновил его.
Нет, нет.
PHP предоставляет переменную $_SERVER
переменной HTTP_REFERER
. К сожалению, веб-браузеры обновляют значение реферера (которое они отправляют на веб-сервер в запросе) при изменении местоположения, например, ссылки на ссылки и т. Д .; одна сторона отправляет вас в другую (даже если страница отправляет вас по ссылке). Однако для F5 они не являются (поскольку страница не является ее реферированием в конце концов. Пользователь принял меры, нажав f5).
Тем не менее, вы можете использовать JavaScript или другие клиентские скрипты для отслеживания нажатий клавиш или разгрузки страницы. Затем вы можете использовать сценарии на стороне клиента, чтобы идентифицировать обновление на стороне клиента или обновить некоторые отслеживания пользователей на стороне сервера.
Вы также можете отслеживать запрошенные пользователями страницы только на стороне сервера. Однако это не будет специально определять F5-обновления. вкладка close / open, reopen link и т. д. также приведет к тому, что запрашивается тот же URI.
Нет пуленепробиваемого способа идентификации обновления F5 на стороне клиента или сервера. Но у меня есть эта идея:
Каждый раз, когда загружается ваша страница:
LAST_VIEWED_PAGE
текущий URL-адрес в переменной сеанса, например LAST_VIEWED_PAGE