2010-08-26 163 views
0

我遇到了多個$_GET變量與「下一個」傳遞的問題。在URL中傳遞多個GET變量與「下一個」參數

我將用戶重定向到登錄頁面:

[email protected]&activate_key=1421sdxzcxz213xz 

的問題是,激活密鑰被視爲登錄頁面上的第二$_GET參數(用「未來」一起),而不是被部分重定向$ _GET。

一個解決方案是使用cookie,有沒有什麼辦法可以使這個工作與$_GET雖然呢?

謝謝!

回答

8

您需要使用urlencode編碼參數數據 - 這樣的事情:

echo '<a href="login?next=' . urlencode('[email protected]&activate_key=1421sdxzcxz213xz') . '">link</a>'; 

這將產生一個像這樣的鏈接:

<a href="login?next=initial_page%3Femail%3Djohn_doe%40gmail.com%26activate_key%3D1421sdxzcxz213xz">link</a> 

...這將正確地解釋。

+0

真棒,非常感謝,它的工作:) – Cat 2010-08-26 22:59:45

+0

@Cat,也許你應該考慮選擇這是正確的? – ServAce85 2011-07-19 15:44:42

2

您可以將&的網址編碼爲%26

0

嘗試這種情況:

header('Location: login?next='.rawurlencode('[email protected]&activate_key=1421sdxzcxz213xz')); 

其中自動生成一個302響應。

測試代碼:

<?php 
if (isset($_GET['next'])) 
    print $_GET['next']; 
else 
    header('Location: '.$_SERVER['REQUEST_URI'].'?next='.rawurlencode('[email protected]&activate_key=1421sdxzcxz213xz')); 
?>