我遇到了多個$_GET
變量與「下一個」傳遞的問題。在URL中傳遞多個GET變量與「下一個」參數
我將用戶重定向到登錄頁面:
[email protected]&activate_key=1421sdxzcxz213xz
的問題是,激活密鑰被視爲登錄頁面上的第二$_GET
參數(用「未來」一起),而不是被部分重定向$ _GET。
一個解決方案是使用cookie,有沒有什麼辦法可以使這個工作與$_GET
雖然呢?
謝謝!
我遇到了多個$_GET
變量與「下一個」傳遞的問題。在URL中傳遞多個GET變量與「下一個」參數
我將用戶重定向到登錄頁面:
[email protected]&activate_key=1421sdxzcxz213xz
的問題是,激活密鑰被視爲登錄頁面上的第二$_GET
參數(用「未來」一起),而不是被部分重定向$ _GET。
一個解決方案是使用cookie,有沒有什麼辦法可以使這個工作與$_GET
雖然呢?
謝謝!
您需要使用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>
...這將正確地解釋。
您可以將&
的網址編碼爲%26
。
[email protected]&activate_key&1421sdxzcxz213xz
嘗試這種情況:
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'));
?>
真棒,非常感謝,它的工作:) – Cat 2010-08-26 22:59:45
@Cat,也許你應該考慮選擇這是正確的? – ServAce85 2011-07-19 15:44:42