Вы действительно смешиваете идею предыдущего документа в истории сеансов клиентов и истории сеансов сервера.
Поскольку Javascript является клиентской стороной, выполнение history.back() отображает элемент управления в браузере, который затем решает, какая страница была последней в истории (имея в виду, что последняя страница может не быть страницей в вашей домен). Когда вы используете PHP на стороне сервера, HTTP-реферер заголовка HTTP - это то, что вам предоставил браузер. Если ваш URI на стороне сервера не был вызван в результате явного щелчка на ссылке, заполните GET/POST и т. Д., Ваш скрипт, вероятно, не получит значение заголовка referrer.
Если вы хотите захватить реферер в домене своего сайта, вы можете начать поддерживать серверную трассу на стороне сервера (в сеансе пользователя). например: $ _SESSION ['breadcrumbs'] = array ('page1', 'page2', ...)
POST-переменные могут сохраняться и на СЕССИИ, хотя я никогда не видел веских оснований для этого. Если вы пытаетесь вернуть сообщение об ошибке для формы и ожидать возврата POST, вы не должны сохранять состояние исходного POST.
Сессия - плохая идея: что, если я открою две вкладки? – Guillaume