[英]How to get refering URL when redirected from some page to another page
我正在使用php標頭從幾個頁面重定向到dev.php
<?php header(Location: dev.php); ?>
我想知道我從哪里被重定向到這里。
我努力了
<?php
print "You entered using a link on ".$_SERVER["HTTP_REFERER"];
?>
但它的作用是$_SERVER["HTTP_REFERER"];
僅當您使用<a href="dev.php">Go to Developer Page</a>
訪問dev.php時才有效
那么,如何獲得推薦網址?
嘗試以下類似的方法。
<?php header(Location: dev.php?referrer=$_SERVER[PHP_SELF]); ?>
header('Referer: '.$_SERVER['PHP_SELF']);
header(Location: dev.php);
如果上述方法不起作用,則必須進行會話。
您可以在GET中傳遞變量:
<?php header('Location: dev.php?backurl='.$_SERVER[PHP_SELF]); ?>
然后采用這種方式:
$backurl=$_GET['backurl'];
您需要手動將referer
添加到標頭中:
header("Referer: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); // current page
header("Location: dev.php");
您也可以使用CURL。 在這里查看一個示例函數: PHP-引用重定向腳本
$_SERVER["HTTP_REFERER"] = 'YOUR_URL';
header('Location: dev.php');
exit(0);
Referer標頭相當不可靠,那里有防病毒軟件和防火牆可以對其進行完全過濾。 您唯一可以完全依靠的是cookie,以及與它們相關的會話。
Cookies存儲在客戶端的瀏覽器中,因此可以進行操作,但是,如果您存儲的是非關鍵性信息,就足夠了。
如今的會話依靠cookie作為啟動它們的一種方式。 隨機生成的哈希存儲在cookie中,相應的數據存儲在鏈接到該哈希的服務器上。 當客戶端請求下一頁時,將檢索此數據。 有關會話的更多信息,請閱讀PHP手冊的相應部分 。
如我所寫,當今的會話依賴於cookie,除非您意識到安全隱患,否則您不應該這樣做。 但是,您可以使用URL參數傳遞會話ID。
附帶說明:為了使用Cookie(以及會話),設置和最終到達網址都必須位於同一域中。 如果不是這種情況,則可以使用請求參數來傳遞信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.