Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menyelesaikan masalah yang php tidak boleh melompat terus ke laman utama

Bagaimana untuk menyelesaikan masalah yang php tidak boleh melompat terus ke laman utama

PHPz
Lepaskan: 2023-04-12 14:53:22
asal
622 orang telah melayarinya

PHP, sebagai bahasa pengaturcaraan, sama sekali tidak sempurna. Walaupun ia berkuasa, kadangkala kita masih menghadapi beberapa masalah. Salah satunya ialah PHP tidak boleh melompat terus ke halaman utama.

Apabila kami menggunakan PHP untuk membangunkan tapak web, kami biasanya mempunyai halaman utama (index.php). Apabila mengakses tapak web, pengguna biasanya mengakses halaman utama dengan memasukkan URL. Sebagai contoh, apabila kami melawati foo.com, kami biasanya melompat ke foo.com/index.php.

Tetapi kadangkala, kita perlu melompat terus ke laman utama dan bukannya melompat ke index.php dahulu dan kemudian melompat ke laman utama. Pada masa ini, kami akan cuba menggunakan kod PHP untuk melaksanakan fungsi ini, contohnya:

header('Location: http://foo.com');
Salin selepas log masuk

Walau bagaimanapun, apabila kami menjalankan kod ini, kami mendapati halaman itu tidak boleh melompat ke halaman utama. kenapa ni?

Alasannya ialah apabila kita menggunakan fungsi header() untuk melompat, kita tidak boleh mengeluarkan apa-apa sebelum fungsi header(). Jika tidak, fungsi header() akan melaporkan ralat, menyebabkan halaman gagal untuk melompat.

Sebagai contoh, kod berikut akan menyebabkan fungsi header() tidak berfungsi dengan betul:

echo 'Hello, World!';
header('Location: http://foo.com');
Salin selepas log masuk

Oleh kerana sebelum memanggil fungsi header(), 'Hello, World!' output. , menyebabkan fungsi header() tidak berfungsi dengan baik.

Jadi, bagaimana untuk menyelesaikan masalah ini?

Pertama, kita perlu memastikan tiada apa-apa yang dikeluarkan sebelum memanggil fungsi header(). Ini boleh dicapai dengan meletakkan kod PHP sebelum HTML, atau menggunakan fungsi OB untuk cache output. Sebagai contoh, kod berikut boleh berfungsi seperti biasa:

ob_start();
echo 'Hello, World!';
ob_end_clean();
header('Location: http://foo.com');
Salin selepas log masuk

Kedua, kita boleh menambah kod lompat ke index.php untuk mengubah hala pengguna ke halaman utama. Contohnya:

if ($_SERVER['SCRIPT_FILENAME'] === __FILE__) {
    header('Location: http://foo.com');
    exit;
}
Salin selepas log masuk

Kod ini akan menentukan sama ada fail semasa diakses terus dan mengubah hala pengguna ke halaman utama. Ambil perhatian bahawa pernyataan keluar mesti ditambah, jika tidak, kod berikutnya akan terus dilaksanakan.

Ringkasnya, walaupun PHP tidak boleh melompat terus ke halaman utama, kita boleh mencapai fungsi ini melalui beberapa teknik. Adalah penting untuk memastikan tiada apa-apa output sebelum fungsi header() untuk mengelakkan ralat.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah yang php tidak boleh melompat terus ke laman utama. 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