Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah $_SERVER[\'HTTP_REFERER\'] Tiada dalam PHP, dan Bagaimana Saya Boleh Mengendalikannya?

Mengapakah $_SERVER[\'HTTP_REFERER\'] Tiada dalam PHP, dan Bagaimana Saya Boleh Mengendalikannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-23 13:30:141011semak imbas

Why is $_SERVER['HTTP_REFERER'] Missing in PHP, and How Can I Handle It?

Isu $_SERVER['HTTP_REFERER'] dalam PHP

Dalam PHP, mengakses pembolehubah $_SERVER['HTTP_REFERER'] boleh membawa kepada notis "Indeks tidak ditentukan: HTTP_REFERER". Memahami sebab di sebalik ralat ini adalah penting untuk menyelesaikannya.

Seperti yang dinyatakan dalam dokumentasi, $_SERVER['HTTP_REFERER'] mewakili URL halaman yang merujuk pengguna kepada halaman semasa. Walau bagaimanapun, ejen pengguna mungkin tidak sentiasa menetapkan nilai ini, atau mereka mungkin membenarkan pengguna mengubah suai nilai ini. Akibatnya, ia tidak boleh dipercayai sepenuhnya.

Menyelesaikan Isu

Untuk menentukan kehadiran $_SERVER['HTTP_REFERER'], adalah penting untuk menyemak sama ada Kunci HTTP_REFERER wujud dalam tatasusunan $_SERVER. Ini boleh dilakukan menggunakan kod berikut:

if (isset($_SERVER['HTTP_REFERER'])) {
    // HTTP_REFERER is set and available
} else {
    // HTTP_REFERER is not set or is missing
}

Alternatif kepada $_SERVER['HTTP_REFERER']

Dalam kes di mana $_SERVER['HTTP_REFERER'] tidak boleh boleh dipercayai, atau jika ketiadaannya perlu ditangani dengan baik, pendekatan alternatif boleh dilakukan diterokai:

  • JavaScript sisi pelanggan: Menggunakan JavaScript untuk menangkap URL rujukan di sisi klien dan menghantarnya melalui AJAX atau sebagai medan borang tersembunyi.
  • Log Perujuk Bahagian Pelayan: Melaksanakan mekanisme sisi pelayan tersuai untuk log maklumat rujukan untuk selanjutnya analisis.
  • Pemeriksaan Pengepala: Memeriksa pengepala HTTP permintaan masuk untuk petunjuk tentang sumber rujukan, seperti pengepala "Dasar-Perujuk" atau "X-Forwarded-For".

Atas ialah kandungan terperinci Mengapakah $_SERVER['HTTP_REFERER'] Tiada dalam PHP, dan Bagaimana Saya Boleh Mengendalikannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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