簡體   English   中英

檢查請求來自哪里

[英]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 ?>&amp;src=about" "width="280px" height="70px">

在您的 PHP 腳本中,您現在可以使用 $_REQUEST['src'] 來區分不同的來源。

不要使用referer,因為它不可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM