Halaman redirect setelah waktu tertentu PHP

95

Ada fungsi PHP tertentu untuk pengalihan setelah beberapa waktu. Saya melihatnya di suatu tempat tetapi tidak ingat. Ini seperti pengalihan gmail setelah log in. Tolong, adakah yang bisa mengingatkan saya?

afaolek
sumber
@zerkms: Sepertinya ada beberapa cara untuk melakukannya.
Wesley Murch
2
@Wesley Murch: Refreshheader bukan standart. Saya tidak pernah menggunakan hal-hal yang tidak tercakup dengan RFC
zerkms
stackoverflow.com/questions/18305258/… mengarahkan saya ke stackoverflow.com/questions/283752/refresh-http-header yang mengatakan bahwa selain tidak menjadi standar, header penyegaran juga menyebabkan masalah kinerja di Internet Explorer.
Edward

Jawaban:

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

ini adalah cara untuk mengatur php headeryang akan mengarahkan Anda ke wherever.phpdalam 5 detik


Ingatlah bahwa header () harus dipanggil sebelum keluaran sebenarnya dikirim, baik dengan tag HTML biasa, baris kosong dalam file, atau dari PHP. Ini adalah kesalahan yang sangat umum untuk membaca kode dengan menyertakan, atau memerlukan, fungsi, atau fungsi akses file lain, dan memiliki spasi atau baris kosong yang dikeluarkan sebelum header () dipanggil. Masalah yang sama terjadi saat menggunakan satu file PHP / HTML. (sumber php.net )

Teneff
sumber
1
menarik saya belum pernah melihat metode ini sebelumnya ... tetapi bukankah itu akan menampilkan halaman kosong atau hanya menganggur tanpa pesan apa pun sampai timer habis?
Ibu
itu akan menampilkan halaman ... semua yang dilakukannya adalah mengatur tajuk penyihir akan memberi tahu browser untuk menyegarkan halaman dalam 5 detik, jika Anda benar-benar ingin menampilkan halaman kosong cukup gunakandie();
Teneff
2
Hal buruk tentang ini adalah: Header ini tidak ada dalam standar HTTP, klien bebas untuk mengabaikannya.
Sven
:) Ide bagus! Dan jika Anda ingin mengirim (menyimpan) beberapa variabel dan menggunakannya di halaman yang dimuat ulang?
Mugur Ungureanu
mungkin satu miliar tahun sejak posting ini tetapi bagaimana Anda memposting pesan saat pengalihan seperti mungkin "Halaman pengalihan, harap tunggu"
CAO
25

Anda dapat menggunakan javascript untuk mengalihkan setelah beberapa saat

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

},5000); // 5 seconds
Ibu
sumber
11
Pertanyaan untuk PHP
Benjamin Intal
5
@Jami itu benar, itu sebabnya saya mengatakan OP bisa menggunakan javascript sebagai gantinya.
Ibu
@BenjaminIntal Ini juga berfungsi sebagai fallback yang bagus jika browser mengabaikan pengalihan di header. Anda harus menggunakan browser yang tidak menerima tajuk DAN Javascript dinonaktifkan agar tidak menerima pengalihan.
Super Cat
18

Anda bisa mencoba ini:

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

Dimana 10 dalam hitungan detik.

royrui
sumber
11

Anda ingin menggunakan php untuk menulis tag meta.

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

Ini tidak dianjurkan tetapi memungkinkan. Angka 5 dalam contoh ini adalah jumlah detik sebelum disegarkan.

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

memang Anda dapat menggunakan kode ini seperti yang dikatakan teneff, tetapi Anda tidak harus meletakkan header sebelum keluaran yang dikirim (ini akan menghasilkan "tidak dapat merelokasi header ....: 3 error").

Untuk mengatasi ini, gunakan fungsi php ob_start();sebelum html apa pun dikeluarkan.

Untuk menghentikan ob cukup letakkan ob_end_flush();setelah Anda tidak memiliki keluaran html.

Bersulang!

JJJack
sumber
2

Jika Anda mengarahkan dengan PHP, maka Anda cukup menggunakan perintah sleep () untuk tidur selama beberapa detik sebelum mengalihkan.

Tapi, saya pikir yang Anda maksud adalah tag meta refresh:

http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

Jason Palmer
sumber
Menggunakan sleep bukanlah pendekatan konvensional, seperti yang dikatakan di atas, fungsi header harus digunakan.
Maksim
Bukankah tidur hanya menunda koneksi?
FluorescentGreen5
2

Penyegaran PHP setelah 5 detik tidak berfungsi untuk saya saat membuka dialog Simpan Sebagai untuk menyimpan file: (header ('Content-type: text / plain'); header ("Content-Disposition: attachment; filename = $ filename > ");)

Setelah tautan Simpan Sebagai diklik, dan file disimpan, penyegaran waktunya berhenti pada halaman panggilan.

Namun, terima kasih banyak, solusi javascript ibu terus berdetak dan menyegarkan halaman web saya, yang saya butuhkan untuk aplikasi khusus saya. Jadi terima kasih ibu telah memposting solusi javascript untuk masalah php di sini.

Anda dapat menggunakan javascript untuk mengalihkan setelah beberapa saat

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

Anda dapat menggunakan kode javascript ini untuk mengalihkan setelah waktu tertentu. Semoga berhasil.

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

},10000); // 10 seconds
Prodip Kirtania
sumber
0

Alihkan pemrograman waktu PHP:

 <?php
 header("Refresh:10;url=***-----índex.php--OR----URL-----");
 ?>
PauloBoaventura
sumber