如何在没有表单的情况下将POST数据传送到PHP中的新页面?

时间:2010-08-14 22:16:48

标签: php post redirect curl

编辑:我可以通过询问是否有办法执行类似header('Location: /msg_form.php?error=3')的操作来简化此问题,除了通过POST发送错误= 3和所有其他表单信息。我认为简短的答案是否定的,但也有其他办法可以做。


我在我的网站中集成了一个消息系统,它使用了GET,但我需要向大型人员列表发送消息,所以我不得不切换到使用POST。但是,当您提交邮件表单并且存在错误时,这会搞砸系统。表单提交到处理页面,如果有错误,它应该重定向回表单页面,但现在转储所有POST信息。 :(

我是不是有办法从php处理页面模拟表单提交?我认为curl可以为我做到这一点,但到目前为止它似乎只是将POSTS发送到netherworld但实际上没有重定向浏览器。

我想我可以打印出一个带有隐藏变量的表单,然后用html或javascript重定向,但这看起来很愚蠢。此外,我可以将处理器直接集成到表单页面中,我可能会这样做,但我不想重新安排很多东西。

5 个答案:

答案 0 :(得分:4)

通常,我会使用相同的页面进行表单输入和表单处理。在页面顶部,检查POST变量,并进行相应处理。我构建一个包含任何错误的字符串。然后在处理代码结束时,如果有错误,请重新显示包含错误的条目页面。否则,重定向或显示感谢页等。

您还可以使用jQuery,在停留在页面上时提交表单,并处理响应(显示返回或重定向的错误)。有很多方法可以解决您的问题。

答案 1 :(得分:3)

好吧..我不确定你要做什么..但是如果你需要从php发送POST你可以用curl做这样的事情:

<?php
 $ch = curl_init('http://mysite.com/index.php');
 curl_setopt ($ch, CURLOPT_POST, 1);
 curl_setopt ($ch, CURLOPT_POSTFIELDS, "option=com_content&task=blogcategory&id=24&Itemid=55");
 curl_exec ($ch);
 curl_close ($ch);
?>

答案 2 :(得分:2)

您可以将POST数据保存在会话变量中。

答案 3 :(得分:0)

您可以使用会话,即使用Cookie的服务器提供的服务。或者您可以使用http传输发送您的信息(更长的解决方案)......

答案 4 :(得分:0)

您可以将POST数据保存在cookie中。