2013-01-15 25 views
0

我有一個業務配置文件設置了單獨的圖庫頁面。這些頁面的頭部是一個php包含。將原始http_referer傳遞給其他頁面

我想爲這個配置文件設置一個麪包屑路徑,所以我使用http_referer來跟蹤我來自哪個列表頁面。

if ($title == 'Business Profile'){ 
session_start(); 
$referer = $_SERVER['HTTP_REFERER']; 
} 
?> 

我遇到的問題是將http_referer作爲變量從業務配置文件傳遞到庫頁面。我如何做到這一點,以便我可以鏈接到商業資料和畫廊的商品頁面?如果我在圖庫頁面上使用http_referer,它只會讓我回到我來自的配置文件。

回答

1

您可以使用cookie?例如在您的着陸頁上;

if(!isset($_COOKIE['HTTP_REFERER'])) 
{ 
    $expiryTime = time()+(60*60*24); // Set to expire after 1 day 
    setcookie('HTTP_REFERER',$_SERVER['HTTP_REFERER'],$expiryTime,'/'); 
} 

然後在所有其他頁面上,您可以檢測是否已經設置了cookie;

if(isset($_COOKIE['HTTP_REFERER'])) 
{ 
    $referer = $_COOKIE['HTTP_REFERER']; 
} 
+0

這看起來很有趣,謝謝Stu。我現在就放棄它。 –

0

1)我應該檢查是否referer地址不是來自我的服務器。

2)如果沒有,您可以將它保存到會話或cookie。

3)最後,你可以根據需要使用它;

<?php 
session_start(); 
if(strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])===FALSE){ 
    $_SESSION['refererPage']= $_SERVER['HTTP_REFERER']; 
    // or set cookie by Stu 
} 
?> 

使用例如:

<?php 
if(!empty($_SESSION['refererPage'])) 
    echo '<a href="'.$_SESSION['refererPage'].'">Back</a>'; 
?> 
+0

感謝您的輸入。我正嘗試使用http_referer從我的列表頁面創建內部麪包屑。根據不同的搜索方法,有4種類型的列表,所以服務器應該始終是我的服務器。理想情況下,如果服務器是'我的服務器',因爲我不希望麪包屑將我帶回另一個站點,例如。谷歌謝謝你,雖然你的答案是有幫助的。 –

相關問題