我需要重定向用户,但我需要模拟一些表单处理,POST请求的终点方式,所以我基本上想要在发送帖子请求时重定向我的用户。
我知道我可以在两者之间做一个页面并使用javascript提交一个隐藏的表单,但我想避免这样。
答案 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);