簡體   English   中英

從某頁面重定向到另一頁面時如何獲取引用URL

[英]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.

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