如何重定向到一個頁面並添加帶有一些信息的$ _POST變量?
我知道,與$ _GET您必須將變量追加到URL像& VAR = foo的
如何重定向到一個頁面並添加帶有一些信息的$ _POST變量?
我知道,與$ _GET您必須將變量追加到URL像& VAR = foo的
session_start();
$_SESSION = $_POST;
然後,您的POST PARAMS將可通過$ _SESSION。
你不能。你的選擇是
一)追加發布變量來重定向URL,然後看看_GET $
B)使用一個會話變量來進行數據一頁一頁。
最好的辦法是使用「Apache RewriteRule」將POST數據發送到重寫的腳本。
您可以從$_POST
提取數據,並將其附加到重定向URL:
header('Location: http://www.yoursite.com/test.php?var=' . urlencode($_POST['var']));
如果您有更多的參數,請參見http_build_query()
,以幫助構建查詢字符串。
但請注意這test.php
頁面會被瀏覽器使用GET
方法加載:服務器無法對瀏覽器說來加載使用POST
另一頁。
你可以使用表單和一些JavaScript來做到這一點。
下面是一個例子:
<form action="/path/to/redirect/to" id="example-id">
<?php foreach ($_POST as $key => $value): ?>
<input type="hidden" name="<?php echo $key ?>" value="<?php echo $value ?>" />
<?php endforeach ?>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#example-id").submit();
});
</script>
注意,例如使用JQuery爲JavaScript的一部分。
我使用POST
表單解決了同樣的問題,並使用JavaScript進行自動驗證。
<?php
.. blah blah blah my stuff
$body = "<html><body onload='connexion.submit()'>";
$body .= "<form name='connexion' action='$connectURL' method='post'>";
$body .= "<input type='hidden' name='username' value='$dataLogin'>";
$body .= "<input type='hidden' name='password' value='$dataPassword'>";
$body .= "<input type='submit' value='OK' />";
$body .= "</form>";
$body .= "</body></html>";
?>
如果JavaScript是在客戶端的瀏覽器禁用它失敗(用戶必須手動提交的形式),但它是我的情況可以接受。
然而,這將不適用於文件字段,並且由於瀏覽器和服務器限制,URL永遠不會大於2-4 k。如果處理大量數據或文件數據,在會話中存儲資料可能是更好的選擇 – 2011-03-28 17:55:37
True;請記住,在同一個網站上打開的所有標籤之間共享的會話 - 所以請確保考慮到這一點。 – 2011-03-28 17:56:59