2011-08-31 27 views
1

查詢字符串我建立一個網站,我所遇到的東西,我不知道該怎麼辦。PHP remove從URL

我有我的網站的會員可以點擊每個頁面上的鏈接,當他們做他們需要在同一個頁面上年底的查詢和確認鏈接等;

/contact?tab=hotlink 

現在這個頁面是一個隱藏的表單和一個確認按鈕,我會使用$ _ SERVER [「HTTP_REFERER」],但以前的網址是/聯繫?標籤=盜鏈,我需要它...

/contact 

有沒有一種辦法字符串替換所有查詢的,我可以用會話做到這一點,但寧願做,因爲它意味着設置unnessessary會議的很多的另一種方式。

感謝

回答

3

查詢字符串是

$_SERVER['QUERY_STRING'] 

所以

str_replace($_SERVER['QUERY_STRING'], '', $_SERVER['HTTP_REFERER']) 

應該給你沒有查詢字符串的請求。

+0

沒有想到這個謝謝。現在就試試:) – carlgcode

0

通常你不會做一個頁面刷新,該查詢字符串 - 你會鏈接到一個#hashed網址,而不是像這樣:

<a href="/contact#tab=hotlink">Hotlink</a> 

你會再使用JavaScript處理程序來捕獲hashchange event (不需要刷新頁面,因此速度更快),並且可以在「熱鏈接」選項卡上動態加載/顯示任何您需要的內容。

這樣一來,即使wou't涉及服務器,並在頁面會有很多更加敏感。

+0

如果javascript被禁用? – carlgcode

+0

如果你非常關心那裏的非js用戶的一小部分,當然你需要跳過一些環節。您可以通過多種方式降低功能 - 例如,使用CSS class ='no-js'技巧,或者使用Javascript注入#hashes,例如 –

0

您可以使用$_SERVER['SCRIPT_NAME']這個

2

使用PHP explode function通過拆分對?字符串來提取引薦基地網址:

$http_referer_full_url = explode("?", $_SERVER["HTTP_REFERER"]); 
$http_referer_base_url = $http_referer_full_url[0]; 

@ Rijk的的回答沒有,因爲$_SERVER['QUERY_STRING']工作在示例中是指當前正在執行的腳本,而不是來自引用者頁面的查詢字符串。