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?


@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 )


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

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.


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.


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!



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

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

0

Alihkan pemrograman waktu PHP:

 <?php
 header("Refresh:10;url=***-----índex.php--OR----URL-----");
 ?>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.