2010-08-18 132 views
0

我很難弄清楚這一點。我甚至不確定是否有可能..我會很感激任何形式的幫助!將變量從一個站點傳遞到另一個站點

在現場,我有一個重定向到站點B.當點擊一個網站的鏈接的鏈接(聯屬類型的鏈接),我使用這個腳本來重定向..

header('HTTP/1.1 301 Moved Permanently'); 
header('Location: ' . $url); 
exit; 

的$網址var只是網站的「A」網址。我無法弄清楚的是,如何在不使用URL本身的查詢字符串的情況下將重定向腳本中的變量傳遞到站點B(例如,http://www.siteB.com/?var_to_pass=something

此外,兩個站點都位於不同的服務器上,所以我我不確定會議是否有效。但是,在網站之間我有一個腳本,我希望我可以用某人來實現我所需要的。

回答

2

只有一種方法可以通過重定向在站點之間傳遞數據,就像您在做的那樣,通過查詢變量在URL中傳遞數據。您無法通過POST重定向瀏覽器,因此GET是您唯一的選擇。

+1

當然,你可以...你需要的只是一點點的JavaScript ...渲染的JavaScript,然後將發佈的請求。 – ircmaxell 2010-08-18 20:38:34

+0

是的,但像往常一樣,如果JavaScript未啓用,該怎麼辦? – 2010-08-18 20:48:50

+0

@ircmaxell如果用戶沒有JS,就會失敗的可怕的黑客想法 – meagar 2010-08-18 20:49:41

1

你可以用POST和javascript來做,但它不夠漂亮(或可靠)。只需填寫身體onLoad事件提交的表單即可。

你只是想隱藏變量?你可以這樣做:

www.sitea.com -> (redirect) -> www.siteb.com/incoming?var=blah 
# then 
www.siteb.com/incoming?var=blah -> (redirect) -> www.siteb.com/ 

它會如此之快,用戶甚至不會看到最終的結果是,網站B從站點A獲取變量和用戶在一個乾淨的期待網址最終發生。

+0

這很整潔!謝謝:)但是,一旦站點b重定向,我也能存儲'blah'嗎? – 2010-08-18 22:33:22

+0

您需要將其手動存儲到傳入頁面(在會話中)。這樣,網站b就可以在需要時訪問它。 – 2010-08-19 17:25:24

0

或者,您可以使用curl(但請注意,如果您想重定向,您必須使用上述解決方案,它不會重定向)發送和接收從一臺服務器到另一臺服務器的變量,保存你的變量在某個地方(數據庫)..