Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menyelesaikan masalah yang php redirect tidak boleh melompat

Bagaimana untuk menyelesaikan masalah yang php redirect tidak boleh melompat

PHPz
Lepaskan: 2023-04-03 16:16:01
asal
1645 orang telah melayarinya

PHP ialah bahasa skrip sebelah pelayan yang biasa digunakan yang memainkan peranan penting dalam pembangunan tapak web. Apabila menggunakan PHP untuk membangunkan tapak web, fungsi lompat ubah hala sering digunakan, tetapi kadangkala kita dapati kod PHP tidak dapat melaksanakan lompatan ubah hala secara normal. Artikel ini akan menjawabnya secara terperinci.

  1. Apakah itu lompat ubah hala

Lompat ubah hala merujuk kepada fungsi mengubah hala halaman web yang diminta oleh pengguna ke URL lain secara automatik untuk merealisasikan lompatan halaman. Dalam PHP, lompatan ubah hala boleh dilaksanakan melalui fungsi header(). Fungsi header() ialah fungsi terbina dalam PHP, digunakan untuk menghantar pengepala HTTP asli, termasuk kod status, Jenis Kandungan dan maklumat lain.

  1. Cara melaksanakan lompatan ubah hala dalam PHP

Dalam PHP, terdapat dua cara untuk melaksanakan lompatan ubah hala Satu ialah menggunakan fungsi header() untuk melompat . yang lain adalah menggunakan tag meta untuk melompat.

2.1 Gunakan fungsi header() untuk melompat

Fungsi header() boleh melaksanakan fungsi lompat ubah hala dan perlu menghantar maklumat pengepala HTTP yang berbeza mengikut situasi.

Kod sampel adalah seperti berikut:

<?php 
    header("Location: http://www.example.com/");
    exit();
?>
Salin selepas log masuk

Dalam kod di atas, fungsi header() melepasi URL yang diubah hala dalam bentuk parameter, seperti "http://www .example.com/" , dan kemudian panggil fungsi exit() untuk menghentikan pelaksanaan skrip semasa untuk memastikan pengalihan berkuat kuasa.

Perlu diambil perhatian bahawa tiada maklumat, termasuk teg HTML, ruang, baris baharu, dsb., boleh dikeluarkan kepada klien sebelum menggunakan fungsi header() untuk melompat.

2.2 Gunakan tag meta untuk melompat

Selain menggunakan fungsi header() untuk melompat, anda juga boleh menggunakan tag meta dalam HTML untuk melompat.

Kod sampel adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="refresh" content="0;URL=&#39;http://www.example.com/&#39;" />
</head>
<body>
</body>
</html>
Salin selepas log masuk

Dalam kod di atas, teg meta menggunakan atribut kandungan untuk menentukan URL untuk melompat ke, dan menetapkan pemasa nilai ialah 0, ia bermakna Jump.

Perlu diambil perhatian bahawa apabila menggunakan tag meta untuk melompat, halaman tersebut akan kekal untuk tempoh masa sebelum melompat ke URL yang ditentukan, yang mungkin mengakibatkan pengalaman pengguna yang lemah.

  1. Punca masalah dengan pengalihan PHP

Pengalihan PHP kadangkala gagal melonjak, yang disebabkan terutamanya oleh sebab berikut :

3.1 Maklumat telah output kepada klien sebelum ini

Apabila menggunakan fungsi header() untuk melompat, anda mesti memastikan tiada maklumat dikeluarkan kepada klien sebelum memanggil fungsi header(), jika tidak Akan menyebabkan pengalihan gagal.

Kod sampel adalah seperti berikut:

<!DOCTYPE html>
<html>
<head>
<?php 
    echo "Hello World!";
    header("Location: http://www.example.com/");
    exit();
?>
</head>
<body>
</body>
</html>
Salin selepas log masuk

Dalam kod di atas, pernyataan gema pertama kali digunakan untuk mengeluarkan teks "Hello World!" ) fungsi dipanggil untuk melompat, kerana Maklumat telah dikeluarkan kepada pelanggan, menyebabkan pengalihan gagal.

3.2 URL Salah

Jika URL yang diubah hala tidak betul, pengalihan akan gagal. Pada masa ini, anda perlu menyemak sama ada URL itu betul dan sama ada ia mengandungi protokol dan nama hos yang betul.

Kod sampel adalah seperti berikut:

<?php 
    header("Location: example.com");
    exit();
?>
Salin selepas log masuk

Dalam kod di atas, URL yang diubah hala tidak menyatakan protokol dan nama hos, menyebabkan ubah hala gagal.

  1. Ringkasan dan cadangan

Lompatan ubah hala PHP ialah fungsi yang sangat biasa dan anda perlu memberi perhatian kepada beberapa butiran semasa penggunaan. Pertama sekali, apabila memanggil fungsi header() untuk melompat, anda perlu memastikan bahawa tiada maklumat dikeluarkan kepada klien sebelum panggilan kedua, apabila menetapkan URL lompat, anda perlu memastikan bahawa URL adalah betul, termasuk protokol; , nama hos dan maklumat lain. Akhir sekali, adalah disyorkan untuk menggunakan fungsi header() untuk melompat, kerana ia lebih fleksibel dan boleh dipercayai daripada meta tag melompat.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang php redirect tidak boleh melompat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan