Frage Redirect 10 Sekunden Countdown


Ich habe eine Seite, die einen Benutzer nach 10 Sekunden mit dem folgenden Code umleitet.

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

Ich habe dann diesen Code, der in PHP echo ist, und würde Wie die "10" (Sekunden), um dynamisch als 10, 9, 8, 7 ... zu zählen, so dass der Benutzer die Sekunden sehen kann, die bis zur Umleitung der Seite übrig sind.

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>";

Ich habe mich gefragt, ob es einen Weg gibt, wie dies in PHP gemacht werden kann, wenn nicht, was wäre der beste Weg, um dasselbe zu erreichen?


14
2017-09-19 15:44


Ursprung


Antworten:


Das Folgende leitet den Benutzer direkt zu login.php

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

Sie können die Umleitung um X Sekunden verzögern, aber es gibt keinen grafischen Countdown (dank Benutzer1111929):

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

Wenn Sie einen grafischen Countdown möchten, hier ein Beispielcode in 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>

37
2017-09-19 15:46



Ich würde Javascript dafür verwenden

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

Aktualisieren: http://jsfiddle.net/6wxu3/1/


8
2017-09-19 15:46



Du kannst das nicht mit reinem PHP machen - aber Javascript ist dein Freund hier.

Ändern Sie Ihren HTML-Code, um die Anzahl der Sekunden in a einzugeben span:

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

Dann entferne dein meta Markieren und verwenden Sie dieses 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);

Dadurch wird die Zählung auf der Seite jede Sekunde dekrementiert und dann umgeleitet zu login.php wenn der Zähler 0 erreicht.


7
2017-09-19 15:51



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

Denken Sie daran, keinen HTML-Inhalt vor der Kopfzeile zu platzieren.


1
2017-09-19 15:47