首頁 >後端開發 >php教程 >為什麼我的 PHP $_SERVER[\'HTTP_REFERER\'] 變數遺失以及替代方案是什麼?

為什麼我的 PHP $_SERVER[\'HTTP_REFERER\'] 變數遺失以及替代方案是什麼?

Barbara Streisand
Barbara Streisand原創
2024-11-23 06:32:13659瀏覽

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

PHP 中缺少「HTTP_REFERER」變數

在PHP 中,$_SERVER['HTTP_REFERER'] 變數用於存取連結到目前頁面的頁面。但是,一些開發人員可能會遇到錯誤「注意:未定義索引:HTTP_REFERER」。

發生此錯誤的原因是,根據 PHP 文檔,HTTP_REFERER 變數並不總是可用。它由用戶代理(例如瀏覽器)設置,並且可以由用戶修改。此外,並非所有用戶代理都會提供此資訊。

了解 HTTP_REFERER 變數

HTTP_REFERER 變數是一個 HTTP 請求標頭,指示引用頁面的 URL使用者到目前頁面。此資訊有多種用途,例如:

  • 追蹤使用者行為和網站流量
  • 偵測惡意或垃圾郵件請求
  • 防止跨站點請求偽造(CSRF)攻擊

替代HTTP_REFERER

由於 HTTP_REFERER 不能完全信任且可能不可用,因此替代方法是使用 JavaScript 的 window 物件中的 getDocumentReferrer()。此方法傳回連結到目前頁面的頁面 URL,比 HTTP_REFERER 更可靠。

範例

const referrer = document.referrer;

但是,需要注意的是此方法可能不適用於所有瀏覽器,也可能由使用者修改。

以上是為什麼我的 PHP $_SERVER['HTTP_REFERER'] 變數遺失以及替代方案是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn