Seitenumleitung nach bestimmter Zeit PHP


94

Es gibt eine bestimmte PHP-Funktion zum Umleiten nach einiger Zeit. Ich habe es irgendwo gesehen, kann mich aber nicht erinnern. Es ist wie bei der Google Mail-Weiterleitung nach dem Anmelden. Könnte mich bitte jemand daran erinnern?


@zerkms: Sieht so aus, als gäbe es ein paar Möglichkeiten, dies zu tun.
Wesley Murch

2
@ Wesley Murch: RefreshHeader ist kein Standard . Ich würde niemals Dinge verwenden, die nicht mit RFCs abgedeckt sind
zerkms

stackoverflow.com/questions/18305258/… führte mich zu stackoverflow.com/questions/283752/refresh-http-header, der besagt, dass der Aktualisierungsheader nicht nur Standard ist, sondern auch Leistungsprobleme in Internet Explorer verursacht.
Edward

Antworten:


229
header( "refresh:5;url=wherever.php" );

Dies ist die PHP-Methode, mit headerder Sie wherever.phpin 5 Sekunden weitergeleitet werden


Denken Sie daran, dass header () aufgerufen werden muss, bevor eine tatsächliche Ausgabe gesendet wird, entweder durch normale HTML-Tags, Leerzeilen in einer Datei oder über PHP. Es ist ein sehr häufiger Fehler, Code mit Include- oder Require-Funktionen oder einer anderen Dateizugriffsfunktion zu lesen und Leerzeichen oder Leerzeilen zu haben, die ausgegeben werden, bevor header () aufgerufen wird. Das gleiche Problem besteht bei der Verwendung einer einzelnen PHP / HTML-Datei. (Quelle php.net )


1
Interessant, ich habe diese Methode noch nie gesehen ... aber wird das nicht eine leere Seite anzeigen oder einfach ohne Meldung im Leerlauf sein, bis der Timer abgelaufen ist?
Ibu

es wird die Seite anzeigen ... alles, was es tut, ist den Header zu setzen, der den Browser anweist, die Seite in 5 Sekunden zu die();
aktualisieren

2
Das Schlimme daran ist: Dieser Header ist nicht im HTTP-Standard enthalten, Clients können ihn ignorieren.
Sven

:) Gute Idee! Und wenn Sie einige Variablen senden (behalten) und auf der neu geladenen Seite verwenden möchten?
Mugur Ungureanu

Es ist vielleicht eine Milliarde Jahre her seit diesem Beitrag, aber wie postest du eine Nachricht während der Weiterleitung wie vielleicht "Seite umleiten, bitte warten"
CAO

25

Sie können Javascript verwenden, um nach einiger Zeit umzuleiten

setTimeout(function () {
   window.location.href= 'http://www.google.com'; // the redirect goes here

},5000); // 5 seconds

11
Frage war für PHP
Benjamin Intal

5
@Jami es ist wahr, deshalb habe ich gesagt, dass das OP stattdessen Javascript verwenden kann.
Ibu

@BenjaminIntal Dies funktioniert auch als großartiger Fallback, wenn der Browser eine Umleitung im Header ignoriert. Sie müssten einen Browser verwenden, der den Header nicht akzeptiert UND Javascript deaktiviert hat, um die Umleitung nicht zu erhalten.
Super Cat

18

Sie können dies versuchen:

header('Refresh: 10; URL=http://yoursite.com/page.php');

Wobei 10 in Sekunden ist.


11

Sie möchten PHP verwenden, um ein Meta-Tag zu schreiben.

<meta http-equiv="refresh" content="5;url=http://www.yoursite.com">

Es wird nicht empfohlen, aber es ist möglich. Die 5 in diesem Beispiel gibt die Anzahl der Sekunden an, bevor eine Aktualisierung durchgeführt wird.


3
header( "refresh:5;url=wherever.php" );

Sie können diesen Code zwar verwenden, wie Teneff sagte, aber Sie müssen den Header nicht unbedingt vor einer gesendeten Ausgabe platzieren (dies würde den Fehler "Header kann nicht verschoben werden ....: 3" ausgeben).

Um dies zu lösen, verwenden Sie die PHP-Funktion, ob_start();bevor HTML ausgegeben wird.

Um das ob zu beenden, setzen ob_end_flush();Sie es einfach, nachdem Sie keine HTML-Ausgabe haben.

Prost!



2

Die PHP-Aktualisierung nach 5 Sekunden funktionierte beim Öffnen eines Dialogfelds Speichern unter zum Speichern einer Datei nicht: (Header ('Inhaltstyp: Text / Nur'); Header ("Inhaltsdisposition: Anhang; Dateiname = $ Dateiname" > ");)

Nachdem auf den Link Speichern unter geklickt und die Datei gespeichert wurde, wurde die zeitgesteuerte Aktualisierung auf der aufrufenden Seite gestoppt.

Vielen Dank, die Javascript-Lösung von ibu hat meine Webseite immer wieder angekreuzt und aktualisiert, was ich für meine spezifische Anwendung brauchte. Vielen Dank an ibu, dass Sie hier eine Javascript-Lösung für das PHP-Problem veröffentlicht haben.

Sie können Javascript verwenden, um nach einiger Zeit umzuleiten

setTimeout(function () {    
    window.location.href = 'http://www.google.com'; 
},5000); // 5 seconds

2

Sie können diesen Javascript-Code verwenden, um nach einer bestimmten Zeit umzuleiten. Hoffe es wird funktionieren.

setRedirectTime(function () 
{
   window.location.href= 'https://www.google.com'; // the redirect URL will be here

},10000); // 10 seconds
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.