Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menyelesaikan masalah yang php tidak boleh melompat terus ke laman utama
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');
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');
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');
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; }
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!