Keluar dari Skrip PHP Selepas Mengubah Hala: Menggunakan exit() atau die() dengan header()
Anda telah menyatakan kebimbangan tentang menggunakan exit( ); atau mati(); selepas memanggil pengepala("Lokasi: " . getenv("HTTP_REFERER")); dalam skrip PHP. Berikut ialah pecahan mengapa fungsi ini penting dan cara ia mempengaruhi pelaksanaan kod anda:
Mengapa exit() atau die()?
Apabila anda menggunakan pengepala (), PHP menetapkan pengepala HTTP dalam respons. Pengepala ini mengarahkan penyemak imbas untuk mengubah hala pengguna ke lokasi baharu. Walau bagaimanapun, PHP boleh terus melaksanakan kod selepas header() dipanggil. Ini boleh menyebabkan tingkah laku yang tidak dijangka atau pendedahan maklumat sensitif yang tidak diingini.
exit() dan die() serta-merta menamatkan skrip PHP, menghalang sebarang pelaksanaan kod selanjutnya. Ini memastikan skrip anda berhenti selepas ubah hala, menghalang kemungkinan isu.
Menambah exit() atau die()
Untuk menggunakan exit() atau die(), cuma tambahkannya terus selepas pelaksanaan header(). Contohnya:
<code class="php">// execute queries, set cookies, etc. here header("Location: " . getenv("HTTP_REFERER")); exit();</code>
AJAX dan jQuery
Menggunakan exit() atau die() seharusnya tidak menjejaskan permintaan AJAX atau jQuery. Teknologi ini mengendalikan respons HTTP secara tidak segerak, jadi penamatan skrip PHP tidak mengganggu fungsinya.
Kegunaan lain exit() or die()
Selain menggunakan exit() atau die() selepas header(), ia juga boleh digunakan:
Perbezaan Antara exit() dan die()
Sementara kedua-dua exit() dan die() menamatkan pelaksanaan PHP, terdapat perbezaan yang ketara. die() juga menggemakan mesej yang disediakan sebelum keluar, manakala exit() tidak. Ini boleh berguna untuk nyahpepijat atau menyediakan maklumat tambahan.
Perl vs PHP
Penggunaan exit() dan die() dikaitkan terutamanya dengan PHP. Dalam Perl, mereka mempunyai fungsi analog yang dipanggil keluar dan mati (tanpa kurungan). Walau bagaimanapun, semantiknya sedikit berbeza dalam Perl, dengan exit menimbulkan pengecualian manakala die exit tanpa menimbulkan pengecualian.
Atas ialah kandungan terperinci Sekiranya saya menggunakan exit() atau die() selepas memanggil header() dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!