有没有办法用POST请求重定向用户?

时间:2011-04-16 14:34:32

标签: php post redirect

我需要重定向用户,但我需要模拟一些表单处理,POST请求的终点方式,所以我基本上想要在发送帖子请求时重定向我的用户。

我知道我可以在两者之间做一个页面并使用javascript提交一个隐藏的表单,但我想避免这样。

2 个答案:

答案 0 :(得分:0)

为什么不在表单上添加隐藏值然后执行此操作;

if (isset($_POST['submit']) {

// form is submmitted

header('location: /')

}

elseif (!isset($_POST['submit'])) {

// redirect to form

}

else {

// error handling or something else

}

您甚至可以通过创建类和对象来进一步改善,通过为其指定表单值,您可以检查更多实例。

很难说出你的问题,但如果不是我收集的内容,请给我一个评论,我会编辑我的答案芽!

:)

答案 1 :(得分:0)

我假设您正在中间服务器中进行某种统计信息记录?

另一种方法..将POST格式化为目标URL,但使用ajax首先获取表单数据。

<form id="formid" onsubmit="saveFormValues(this);return true" target="http://target/url">

</form>

浏览器首先调用saveFormValues(),然后返回true,表示可以正常方式处理表单。

当然,这对没有javascript的人来说不适用。 POST到中间服务器的唯一方法是让中间服务器使用cURL将数据POST到目标服务器本身。然后返回响应。

<?php

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://target/url");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);