如何重定向到某个页面并添加带有一些信息的$ _POST变量?
我知道使用$ _GET你必须将变量附加到URL,例如& var = foo
答案 0 :(得分:6)
session_start();
$_SESSION = $_POST;
然后您的POST参数将通过$ _SESSION提供。
答案 1 :(得分:4)
您可以从$_POST
中提取数据,并将其附加到重定向网址:
header('Location: http://www.yoursite.com/test.php?var=' . urlencode($_POST['var']));
如果您有更多参数,请参阅http_build_query()
,以帮助构建查询字符串。
但请注意,浏览器会使用test.php
方法加载此GET
页面:服务器无法通过POST
向浏览器说明要加载其他页面。
答案 2 :(得分:4)
你可以使用表单和一些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部分。
答案 3 :(得分:3)
你做不到。你的选择是
a)将发布的变量附加到重定向网址,然后查看$ _GET
b)使用会话变量从页面到页面传送数据。
答案 4 :(得分:3)
最好的方法是使用“Apache RewriteRule”将POST数据发送到重写的脚本。
答案 5 :(得分:1)
我使用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(用户必须手动提交表单),它会失败,但我的情况可以接受。