Перенаправление 10 секунд Обратный отсчет

У меня есть страница, которая перенаправляет пользователя через 10 секунд с помощью следующего кода.

<META HTTP-EQUIV="refresh" CONTENT="10;URL=login.php"> 

Затем я получаю этот код, который является эхом в PHP, и хотел бы, чтобы «10» (секунды) обратились к динамическому обратному отсчету как 10, 9, 8, 7 … поэтому пользователь может видеть секунды до переадресации страницы.

 echo "We cant find you on the system. <br/> Please return to the <b><a href='login.php'>Login</a></b> page and ensure that <br/>you have entered your details correctly. <br> <br> <b>Warning</b>: You willl be redirected back to the Login Page <br> in <b>10 Seconds</b>"; 

Мне было интересно, есть ли способ, которым это можно сделать в PHP, если не то, что было бы лучшим способом добиться того же?

Следующее перенаправит пользователя сразу на login.php

 <?php header('Location: login.php'); // redirects the user instantaneously. exit; ?> 

Вы можете использовать следующее для задержки перенаправления на X секунд, но графического обратного отсчета нет (благодаря user1111929 ):

 <?php header('refresh: 10; url=login.php'); // redirect the user after 10 seconds #exit; // note that exit is not required, HTML can be displayed. ?> 

Если вы хотите графический обратный отсчет, вот пример кода в JavaScript:

 <p>You will be redirected in <span id="counter">10</span> second(s).</p> <script type="text/javascript"> function countdown() { var i = document.getElementById('counter'); if (parseInt(i.innerHTML)<=0) { location.href = 'login.php'; } i.innerHTML = parseInt(i.innerHTML)-1; } setInterval(function(){ countdown(); },1000); </script> 

Я бы использовал javascript для этого

 var counter = 10; setInterval(function() { counter--; if(counter < 0) { window.location = 'login.php'; } else { document.getElementById("count").innerHTML = counter; } }, 1000);​ 

Обновление: http://jsfiddle.net/6wxu3/1/

Вы не можете сделать это с помощью чистого PHP, но javascript – ваш друг здесь.

Измените свой HTML, чтобы установить количество секунд в span :

 <b><span id="count">10</span> Seconds</b> 

Затем удалите meta и используйте этот javascript:

 var count = 10; function decrement() { count--; if(count == 0) { window.location = 'login.php'; } else { document.findElementById("count").innerHTML = "" + count; setTimeout("decrement", 1000); } } setTimeout("decrement", 1000); 

Это будет уменьшать счет на странице каждую секунду, а затем перенаправить на login.php когда счетчик достигнет 0.

header("Refresh: 2; url=$your_url");

Не забудьте добавить содержимое html перед заголовком.