2014-11-01 100 views
0

我正在嘗試創建一箇中間頁面,即用戶點擊一個鏈接,該頁面會告訴您現在正在離開該網站。通過GET傳遞一個包含GET參數的完整URL url

一個例子鏈接應該是這樣的:

http://example.com/transitionpage.php?r=http://www.google.com 

transitionpage.php然後用一個簡單的

$redirectto = $_GET['r']; 
header("refresh:2;url=".$redirectto); 

工作不過我遇到的問題是,如果URL您要重定向也有它的多個GET參數,域在第一次出現時被切斷&

所以如果鏈接最初是:

http://example.com/transitionpage.php?r=http://www.google.com?par=1&par=2

它將成爲:

http://example.com/transitionpage.php?r=http://www.google.com?par=1

這是不利的。

如何通過GET傳遞完整的URL而不會被切斷?我必須逃脫嗎?

+2

地址編碼!請參閱:http://www.w3schools.com/tags/ref_urlencode.asp和http://ch1.php.net/urlencode – Rizier123 2014-11-01 19:52:54

+0

一個簡單的urlencode();的確是這樣做的,謝謝! – user327685 2014-11-01 19:55:20

回答

1
+0

這給了我預期的結果,如果我'echo $ redirectto;'但是在實際的重定向它這樣做'書?lang = en & currency = THB &'和實際的url不能再工作? – user327685 2014-11-01 20:06:17

+0

你有urldecode()嗎? – Michalis 2014-11-01 20:11:19

+0

是的!打印時變量的值也是正確的,只有當它用於重定向時,它纔會用&?來替換%26amp。 – user327685 2014-11-01 20:17:22

0

用途:

$link = 'http://example.com/transitionpage.php?r='. urlencode('http://www.google.com?par=1&par=2'); 
0

使用內置in編碼功能Url

例如

urlencode("http://www.google.com"); 

的功能refrence

Urlencode Php