Belirli bir süre sonra sayfa yönlendirme PHP


95

Bir süre sonra yeniden yönlendirmek için belirli bir PHP işlevi vardır. Bir yerde gördüm ama hatırlayamıyorum. Giriş yaptıktan sonra gmail yeniden yönlendirmesi gibi. Lütfen biri bana hatırlatabilir mi?


@zerkms: Bunu yapmanın birkaç yolu var gibi görünüyor.
Wesley Murch

2
@Wesley Murch: Refreshbaşlık standart değil. RFC'lerin kapsamadığı şeyleri asla kullanmam
zerkms

stackoverflow.com/questions/18305258/… beni stackoverflow.com/questions/283752/refresh-http-header'a yönlendirdi, bu da yenileme başlığının standart olmamasının yanı sıra Internet Explorer'da performans sorunlarına da neden olduğunu söylüyor.
Edward

Yanıtlar:


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

bu, headersizi 5 saniyewherever.php içinde yönlendirecek olan php ayarlamadır.


Başlığın (), normal HTML etiketleri, bir dosyadaki boş satırlar veya PHP'den herhangi bir gerçek çıktı gönderilmeden önce çağrılması gerektiğini unutmayın. Dahil etme veya gerektirme işlevleriyle veya başka bir dosya erişim işleviyle kod okumak ve header () çağrılmadan önce boşluklar veya boş satırlar çıkarmak çok yaygın bir hatadır. Tek bir PHP / HTML dosyası kullanıldığında aynı sorun ortaya çıkar. (kaynak php.net )


1
ilginç Bu yöntemi daha önce hiç görmemiştim ... ama bu boş bir sayfa göstermeyecek mi yoksa zamanlayıcı bitene kadar herhangi bir mesaj olmadan boşta kalmayacak mı?
Ibu

sayfayı görüntüleyecek ... tek yaptığı şey başlık cadı ayarlamaktır, tarayıcıya sayfayı 5 saniye içinde yenilemesini söyleyecektir, eğer gerçekten boş bir sayfa görüntülemek istiyorsanız sadece şunu kullanındie();
Teneff

2
Bununla ilgili kötü olan şey şudur: Bu başlık HTTP standardında değildir, istemciler bunu göz ardı etmekte özgürdür.
Sven

:) İyi bir fikir! Ve bazı değişkenleri göndermek (saklamak) ve yeniden yüklenen sayfada kullanmak istiyorsanız?
Mugur Ungureanu

Bu gönderinin üzerinden belki bir milyar yıl geçti ama belki "Yönlendirme sayfası, lütfen bekleyin" gibi bir yeniden yönlendirme sırasında nasıl mesaj gönderirsiniz
CAO

25

Bir süre sonra yeniden yönlendirmek için javascript kullanabilirsiniz

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

},5000); // 5 seconds

11
Soru PHP içindi
Benjamin Intal

5
@Jami doğru, bu yüzden OP'nin bunun yerine javascript kullanabileceğini söyledim.
Ibu

@BenjaminIntal Bu, tarayıcı başlıktaki bir yönlendirmeyi yok sayarsa harika bir geri dönüş olarak da çalışır. Yeniden yönlendirmeyi almamak için başlığı kabul etmeyen VE Javascript'i devre dışı bırakan bir tarayıcı kullanmanız gerekir.
Super Cat

18

Bunu deneyebilirsiniz:

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

10 saniyede nerede.


11

bir meta etiket yazmak için php kullanmak istersiniz.

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

Önerilmez ama mümkündür. Bu örnekteki 5, yenilenmeden önceki saniye sayısıdır.


3

Bir dosyayı kaydetmek için Farklı Kaydet iletişim kutusunu açarken 5 saniye sonra PHP yenilemesi benim için işe yaramadı: (başlık ('İçerik türü: metin / düz'); başlık ("İçerik Düzenleme: ek; dosyaadı = $ dosyaadı > ");)

Farklı Kaydet bağlantısı tıklandıktan ve dosya kaydedildikten sonra, arama sayfasında zamanlı yenileme durdu.

Bununla birlikte, çok teşekkür ederim, ibu'nun javascript çözümü web sayfamı tıklamaya ve yenilemeye devam etti, bu benim özel uygulamam için ihtiyacım olan şeydi. Bu yüzden, burada php problemine javascript çözümü gönderdiğiniz için teşekkür ederiz.

Bir süre sonra yeniden yönlendirmek için javascript kullanabilirsiniz

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

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

gerçekten de bu kodu teneff'in dediği gibi kullanabilirsiniz, ancak başlığı gönderilen herhangi bir çıktının önüne koymanız gerekmez (bu, bir "başlığın yerini değiştiremiyor ....: 3 hatası" verir).

Bunu çözmek için, ob_start();herhangi bir html çıktısı alınmadan önce php işlevini kullanın .

ob_end_flush();Herhangi bir html çıktınız olmadığında ob'u sonlandırmak için .

şerefe!



2

Bu javascript kodunu belirli bir süre sonra yönlendirme yapmak için kullanabilirsiniz. Umarım işe yarar.

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

},10000); // 10 seconds

0

PHP zaman programlamasını yeniden yönlendirin:

 <?php
 header("Refresh:10;url=***-----índex.php--OR----URL-----");
 ?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.