Задать вопрос

Как сделать задержку перед редериктом с полной загрузкой страницы?

Здравствуйте, есть файл test.php
В нем вот такой код с редериктом с сохранением utm меток дальше после редерикта
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<!-- Yandex.Metrika counter -->
тут код метрики
<!-- /Yandex.Metrika counter -->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Перенаправление</title>
 перенаправление
<?php
sleep(3);
header("Location: andex.ru/".$m[1]."/?". http_build_query($_GET));
exit;
?>
 
</head>
<body>
</body>
</html>


как сделать так что бы если человек зашел на эту страницу она полностью загрузилась и пользователь увидел текст на экране "Перенаправление" и после 3 секунд уже был редерикт.

Это нужно что бы яндекс.метрика зафиксировала визит.

Спасибо
  • Вопрос задан
  • 596 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
@alekssamos
Программист любитель
Тебе нужен Javascript.
PHP выполняется на сервере,
ещё до того, как клиент получит страницу.
Соответственно делаем так:
<script>
window.setTimeout(function(){
    window.location.href = "https://example.com/?" + window.location.search.substring(1);
}, 3000);

</script>
Ответ написан
heemsing
@heemsing Автор вопроса
Решение для редерикта с задержкой и пробросом всех utm меток.

<script>
$(document).ready(function () {
    $("a").each(function () {
        var href = $(this).attr("href");
        var search = "?" + window.location.search.split("&").filter(val => val.replace('?', '').indexOf('s_') !== 0).join("&").replace('?', '');
        if (search !== "?" && href != undefined && href.includes(".") && !href.includes("#")) {
            if (!href.includes("?")) {
                $(this).attr("href", href + search);
            } else {
                $(this).attr("href", href + search.replace("?", "&"));
            }
        }
    });
});
</script>
<script>
window.setTimeout(function(){
    window.location.href = "Ссылку куда вести" + window.location.search.substring(1);
}, 1000);
</script>


Все отличной работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@rPman
без javascript редирект делают с помощью тега meta
<meta http-equiv="refresh" content="2;URL=https:/site.ru">


тут 2 - количество секунд перед редиректом
Ответ написан
Ваш ответ на вопрос

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

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