[英]Check where request came from
在需要圖像時在網站上的鏈接是這樣的
<img src="getimage.php?id=<?php echo $name ?>" " width="280px" height="70px">
然后在 getimage.php 上它獲取 id 並從中找到正確的圖片並顯示它。
$id = $_GET['id'];
這完美地工作。 我如何找出請求的來源。 那么下面這一行在哪一頁上
<img src="getimage.php?id=<?php echo $name ?>" "width="280px" height="70px">
所以最終我可以知道請求的圖像是用於 index.php 還是 about.php 等
謝謝
您可以向圖像 URL 添加一個附加參數,指定從哪個頁面請求它:
<img src="getimage.php?id=<?php echo urlencode($name); ?>&page=<?php echo urlencode($page); ?>" "width="280px" height="70px">
工作方式與您使用id
參數的方式完全相同。
好處是,這不依賴於瀏覽器發送(或不發送)的某些標題,例如HTTP Referer ,您無法從服務器端控制這些標題。
要獲取生成圖像鏈接的頁面,您可以使用以下內容:
$page = basename(__FILE__);
請參閱basename
PHP 手冊和__FILE__
PHP 手冊。
此外,代碼使用urlencode
PHP 手冊function 來確保屬性不會中斷。
如果設置,則在$_SERVER
數組中查找鍵HTTP_REFERER
:
$_SERVER['HTTP_REFERER'];
將用戶代理引向當前頁面的頁面地址(如果有)。 這是由用戶代理設置的。 不是所有的用戶代理都會設置這個,有些提供修改
HTTP_REFERER
作為一個特性的能力。 簡而言之,它不能真正被信任。 (來源)
$_SERVER['HTTP_REFERER'];
那是你要找的嗎?
您可以查看 $_SERVER['HTTP_REFERER'],但這並不總是由發送請求的瀏覽器設置。 您還可以在發回帶有頁面標識符(即“關於”)的響應時設置 session 變量。 如果設置了此 session 變量,則請求的上一頁在該變量中。 如果未設置,則用戶剛剛在 session 中首次登陸您的網站。
您必須添加另一個定義源的參數:
<img src="getimage.php?id=<?php echo $name ?>&src=about" "width="280px" height="70px">
在您的 PHP 腳本中,您現在可以使用 $_REQUEST['src'] 來區分不同的來源。
不要使用referer,因為它不可靠。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.