Przekierowanie strony po pewnym czasie PHP


95

Istnieje pewna funkcja PHP do przekierowania po pewnym czasie. Widziałem to gdzieś, ale nie pamiętam. To jak przekierowanie do Gmaila po zalogowaniu. Czy ktoś mógłby mi o tym przypomnieć?


@zerkms: Wygląda na to, że jest na to kilka sposobów.
Wesley Murch

2
@Wesley Murch: Refreshnagłówek nie jest standardowy. Nigdy nie
używałbym

stackoverflow.com/questions/18305258/ ... doprowadził mnie do stackoverflow.com/questions/283752/refresh-http-header, który mówi, że nagłówek odświeżania nie jest standardem, ale powoduje również problemy z wydajnością w Internet Explorerze.
Edward

Odpowiedzi:


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

jest to sposób php do zestawu header, który przekieruje Cię do wherever.phpw 5 sekund


Pamiętaj, że nagłówek () musi zostać wywołany przed wysłaniem jakichkolwiek danych wyjściowych, albo przez normalne znaczniki HTML, puste wiersze w pliku, albo przez PHP. Bardzo częstym błędem jest odczytywanie kodu z włączaniem lub wymaganiem funkcji lub inną funkcją dostępu do pliku, a spacje lub puste wiersze są wyświetlane przed wywołaniem funkcji header (). Ten sam problem występuje w przypadku korzystania z pojedynczego pliku PHP / HTML. (źródło php.net )


1
ciekawe, nigdy wcześniej nie widziałem tej metody ... ale czy to nie spowoduje wyświetlenia pustej strony lub po prostu bezczynności bez żadnej wiadomości, aż skończy się czas?
Ibu

wyświetli stronę ... wszystko, co robi, to ustawienie nagłówka, który powie przeglądarce, aby odświeżyła stronę w ciągu 5 sekund, jeśli naprawdę chcesz wyświetlić pustą stronę, po prostu użyjdie();
Teneff

2
Złe jest to, że ten nagłówek nie jest w standardzie HTTP, klienci mogą go zignorować.
Sven

:) Dobry pomysł! A jeśli chcesz wysłać (zachować) niektóre zmienne i użyć na odświeżonej stronie?
Mugur Ungureanu

od tego posta minęło może miliard lat, ale jak zamieścić wiadomość z przekierowaniem, na przykład „Przekierowywanie strony, proszę czekać”
CAO

25

Możesz użyć javascript do przekierowania po pewnym czasie

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

},5000); // 5 seconds

11
Pytanie
dotyczyło

5
@Jami to prawda, dlatego powiedziałem, że OP może zamiast tego używać javascript.
Ibu

@BenjaminIntal Działa to również jako świetna opcja zastępcza, jeśli przeglądarka ignoruje przekierowanie w nagłówku. Musiałbyś użyć przeglądarki, która nie akceptuje nagłówka ORAZ ma wyłączoną obsługę JavaScript, aby nie otrzymywać przekierowań.
Super Cat

18

Możesz spróbować tego:

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

Gdzie 10 to sekundy.


11

chciałbyś użyć php do wypisania metatagu.

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

Nie jest to zalecane, ale jest to możliwe. 5 w tym przykładzie to liczba sekund, po których następuje odświeżenie.


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

w istocie możesz użyć tego kodu, jak powiedział teneff, ale nie musisz koniecznie umieszczać nagłówka przed jakimkolwiek wysłanym wyjściem (spowodowałoby to komunikat „nie można przenieść nagłówka ....: 3 błąd”).

Aby rozwiązać ten problem, użyj funkcji php ob_start();przed wyprowadzeniem jakiegokolwiek kodu HTML.

Aby zakończyć ob, po prostu umieść go ob_end_flush();, gdy nie masz żadnych danych wyjściowych HTML.

Twoje zdrowie!



2

Odświeżanie PHP po 5 sekundach nie działało podczas otwierania okna dialogowego Zapisz jako w celu zapisania pliku: (nagłówek ('Content-type: text / plain'); header ("Content-Disposition: załącznik; filename = $ filename > ");)

Po kliknięciu łącza Zapisz jako i zapisaniu pliku odświeżanie czasowe zatrzymało się na stronie wywołującej.

Jednak bardzo dziękuję, rozwiązanie javascript ibu po prostu ciągle odkazywało i odświeżało moją stronę internetową, czego potrzebowałem w mojej konkretnej aplikacji. Więc dziękuję ibu za zamieszczenie tutaj rozwiązania javascript dotyczącego problemu z php.

Możesz użyć javascript do przekierowania po pewnym czasie

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

2

Możesz użyć tego kodu javascript do przekierowania po określonym czasie. Mam nadzieję, że to zadziała.

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

},10000); // 10 seconds

0

Programowanie czasu przekierowania w PHP:

 <?php
 header("Refresh:10;url=***-----índex.php--OR----URL-----");
 ?>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.