Задать вопрос
killmeslow
@killmeslow
WE

Почему на PHP код не работает как на Javascript?

Есть Javacript и работает идеально:
if (!navigator.cookieEnabled || !window.caches) {
  document.cookie = "referrer=" + document.referrer;
  window.history.back();
}

Но на PHP возвращает на домен (например возвращает yandex.ru, а заходил с yandex.ru/kupti-slona), а мне надо на предыдущую страницу.
if (!isset($_COOKIE['referrer']) && (!isset($_SERVER['HTTP_CACHE_CONTROL']) || $_SERVER['HTTP_CACHE_CONTROL'] !== 'max-age=0')) {
    setcookie('referrer', $_SERVER['HTTP_REFERER'], time() + 3600, '/');
    header('Location: ' . $_SERVER['HTTP_REFERER']);
    exit;
}
  • Вопрос задан
  • 527 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
$_SERVER['HTTP_REFERER']!==document.referrer
Что бы понять разницу, выведи и то и другое одной страницы
Вот так будет работать
if (!isset($_COOKIE['referrer']) && (!isset($_SERVER['HTTP_CACHE_CONTROL']) || $_SERVER['HTTP_CACHE_CONTROL'] !== 'max-age=0')) {
    $previousPageUrl = $_SERVER['HTTP_REFERER'] . $_SERVER['REQUEST_URI'];
    setcookie('referrer', $previousPageUrl, time() + 3600, '/');
    header('Location: ' . $previousPageUrl);
    exit;
}
Ответ написан
@neol
Потому что referrer-policy запрещает передачу полного URL на левые хосты.

https://developer.mozilla.org/en-US/docs/Web/HTTP/...

Ну и вызов History API — это совсем не то же самое, что перенаправление на Referrer.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы