Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Pembolehubah PHP $_SERVER[\'HTTP_REFERER\'] Saya Hilang dan Apakah Alternatifnya?

Mengapa Pembolehubah PHP $_SERVER[\'HTTP_REFERER\'] Saya Hilang dan Apakah Alternatifnya?

Barbara Streisand
Barbara Streisandasal
2024-11-23 06:32:13709semak imbas

Why is My PHP $_SERVER['HTTP_REFERER'] Variable Missing and What Are the Alternatives?

Pembolehubah "HTTP_REFERER" Tiada dalam PHP

Dalam PHP, pembolehubah $_SERVER['HTTP_REFERER'] digunakan untuk mengakses URL halaman yang dipautkan ke halaman semasa. Walau bagaimanapun, sesetengah pembangun mungkin menghadapi ralat "Notis: Indeks tidak ditentukan: HTTP_REFERER".

Ralat ini berlaku kerana, menurut dokumentasi PHP, pembolehubah HTTP_REFERER tidak selalu tersedia. Ia ditetapkan oleh ejen pengguna (cth., pelayar) dan boleh diubah suai oleh pengguna. Selain itu, tidak semua ejen pengguna akan memberikan maklumat ini.

Memahami Pembolehubah HTTP_REFERER

Pembolehubah HTTP_REFERER ialah pengepala permintaan HTTP yang menunjukkan URL halaman yang merujuk pengguna ke halaman semasa. Maklumat ini berguna dalam pelbagai cara, seperti:

  • Menjejak tingkah laku pengguna dan aliran trafik tapak web
  • Mengesan permintaan berniat jahat atau spam
  • Mencegah pemalsuan permintaan merentas tapak (CSRF) serangan

Alternatif kepada HTTP_REFERER

Memandangkan HTTP_REFERER tidak boleh dipercayai sepenuhnya dan mungkin tidak tersedia, pendekatan alternatif ialah menggunakan kaedah getDocumentReferrer() dalam objek tetingkap JavaScript. Kaedah ini mengembalikan URL halaman yang dipautkan ke halaman semasa dan lebih dipercayai daripada HTTP_REFERER.

Contoh

const referrer = document.referrer;

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah ini mungkin tidak berfungsi dalam semua pelayar dan mungkin juga diubah suai oleh pengguna.

Atas ialah kandungan terperinci Mengapa Pembolehubah PHP $_SERVER[\'HTTP_REFERER\'] Saya Hilang dan Apakah Alternatifnya?. 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