使用$ _POST变量重定向

时间:2011-03-28 17:50:49

标签: php variables post

如何重定向到某个页面并添加带有一些信息的$ _POST变量?

我知道使用$ _GET你必须将变量附加到URL,例如& var = foo

6 个答案:

答案 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(用户必须手动提交表单),它会失败,但我的情况可以接受。