Есть ли «лучшие практики» относительно того, как следует возвращать пользователя на свою исходную страницу после входа на ваш сайт, в частности, на PHP? например если я просматриваю вопрос StackOverflow во время входа в систему, как бы вы гарантировали, что я вернусь к этому вопросу, если я войду в систему?PHP: возвращение пользователя на свою исходную страницу после входа в систему
Из моих исследований, кажется, много советов вокруг переменной $ _SERVER ['HTTP_REFERER']. В основном, вы принимаете к сведению референт и храните его в сеансе, а затем перенаправляете обратно на эту страницу, когда закончите.
Проблема в том, что HTTP_REFERER в лучшем случае ненадежна.
Это настраивает пользовательский агент. Не все пользовательские агенты установят это, а некоторые предоставляют возможность изменять HTTP_REFERER как функцию. Короче говоря, на это нельзя доверять.
— [http://php.net/manual/en/reserved.variables.server.php]
Любые изменения в реферер для перенаправления на другие разделы сайта будут обработаны с помощью обычных разрешений проверок. Если референт опустится, может быть принято просто перенаправить пользователя на главную страницу сайта, а не на страницу, из которой они пришли. Однако это кажется бесполезным для пользователя враждебным, и я надеялся, что будет лучший способ справиться с этим.
Итак, HTTP_REFERER * - это стандартный способ сделать это? Мне нравится идея использования переменной сеанса 'lastpage' в качестве резервной копии для случая пустого реферирования. Благодаря! – AgentConundrum
проблем нет. Но будьте осторожны с методом SESSION, потому что вы никогда не знаете, открыл ли пользователь несколько вкладок вашего сайта в своем браузере. Если это ответы, поставьте галочку, чтобы другие знали =) – mauris
Хорошая точка (несколько вкладок). Кажется, он работает лучше всего с несколькими резервными копиями. Если есть скрытый элемент формы, используйте его. Если нет, проверьте HTTP_REFERER на странице входа и используйте это. Если это тоже пусто, либо используйте то, что сеанс говорит о последней странице, либо отбрасываете пользователя на главную страницу. Может возникнуть вопрос о том, какой из этих двух вариантов обеспечивает лучший пользовательский опыт. «Главная страница», вероятно, менее запутанна, чем быть нажатой на страницу, которую вы открыли на другой вкладке, но это худший опыт в случае отдельных вкладок, где «Последняя страница» является надежной. – AgentConundrum