2011-07-13 57 views
1

搜索(和測試)後,提供一種方式回去按鈕我在這裏問這個問題(也許有一個簡單的解決方案)。回到調用網站

我有一個關於定向運動在我的網站描述(5頁):http://www.uhebeisen.net/o-def/o-definition_ge.php

有來自國外的有一個鏈接到這個網頁許多網站。現在,如果網絡衝浪者進入我的網頁,我想要獲取他們的網址。然後,我可以將一個按鈕放回到我的導航列表中,使他回到他的頁面,從他點擊鏈接到我的描述頁面。

我見過使用javascript:history.go(-1)或$ _SERVER ['HTTP_REFERER']與PHP的解決方案,但問題是,一個websurfer可以移動我的網頁,如果完成他的閱讀任何頁面應該是提供他的(調用)URL,例如他的大學之一。

因此,我需要抓住他的URL並將它存儲在安全的地方,直到他決定離開。如果他在瀏覽我的頁面時返回起始頁面,則不應覆蓋其URL。 因爲我不編程 - 只需複製&粘貼並嘗試瞭解發生了什麼。歡迎任何有關如何做到這一點的建議。


謝謝喬治,一個工作 我不知道放置的session_start的,這就是爲什麼我得到兩次警告的文件的開始。 在測試這個函數時,我發現會話變量並不總是被瀏覽器清除。尤其是使用Firefox時,它幾乎可以永久保存調用URL(WinXP,FF 5.x),而Mac,Safari(Mac)和Camino(Mac)上的Firefox 5按預期工作:重新啓動程序後,我可以成功測試另一個網站。

Firefox與其他瀏覽器在會話方面有不同的設置可能性嗎?

+0

似乎您正在回答您自己的問題:將'$ _SERVER ['HTTP_REFERER']'存儲在會話,cookie或數據庫中。 –

回答

4

您應該在到達時在用戶會話中存儲$ _SERVER ['HTTP_REFERER']。使用此方法時,當用戶在您的網站中瀏覽時,該值不會過分。

session_start(); 
if (!isset($_SESSION['referrer'])) { 
    if (!empty($_SERVER['HTTP_REFERER'])) { // Because not all browsers set this 
     $_SESSION['referrer'] = $_SERVER['HTTP_REFERER']; 
    } 
} 
+0

感謝您的回答喬治,我剛剛把這段代碼放在我的頁面前。現在我得到了兩個警告:警告:session_start()[function.session-start]:無法發送會話cookie - 已經發送的頭(輸出開始於/home/hebeisen/public_html/o-def/o-definition_ge.php: 1)in /home/hebeisen/public_html/o-def/o-definition_ge.php on line 3 Warning:session_start()[function.session-start]:無法發送會話緩存限制器 - 已發送的頭文件(輸出始於/home/hebeisen/public_html/o-def/o-definition_ge.php:1)在第3行的/home/hebeisen/public_html/o-def/o-definition_ge.php –

+0

Hi George,我使用了這個函數,進入我的WordPress footer.php,它呈現整個域名。我回應了$ _SESSION ['referrer']',並且我在我的網站中瀏覽時發現URL正在改變。我可以更改或檢查以將原始引用鏈接器保存在變量中? – Anagio

2

一種方式做這將是存儲的地方(或許在cookie或會話,做它容易與您的PHP頁面)他們來自的頁面,但只有該頁面不在您的網站的域名。這需要一些if語句來恰當地設置cookie/session值,但使用referrer變量的特定部分可以相對容易地完成。有可能是一種更有效的方式來存儲這個,但這是一個跳轉到腦海馬上。

編輯:我強烈推薦喬治的解決方案,更好的方法來做到這一點。

0

您是否嘗試過使用會話?

session_start(); 

if(!isset($_SESSION['refer'])) 
{ 
    $_SESSION['refer'] = $_SERVER['HTTP_REFERER']; 
} 

然後,一旦您準備好按鈕,將鏈接設置爲$ _SESSION ['參考']。

0

在我過去的項目中,我通常存儲在該過程之後重定向URL:

  1. 搜索查詢字符串參數的URL(www.yoursite.com/?REDIRECT_URL = my_encoded_url)
  2. 如果在點1搜索沒有返回任何結果,那麼我將檢查HTTP_REFERER

在兩種情況下,即在會話變量值i存儲驗證該URL屬於後我的網站的域名。