编辑:我可以通过询问是否有办法执行类似header('Location: /msg_form.php?error=3')
的操作来简化此问题,除了通过POST发送错误= 3和所有其他表单信息。我认为简短的答案是否定的,但也有其他办法可以做。
我在我的网站中集成了一个消息系统,它使用了GET,但我需要向大型人员列表发送消息,所以我不得不切换到使用POST。但是,当您提交邮件表单并且存在错误时,这会搞砸系统。表单提交到处理页面,如果有错误,它应该重定向回表单页面,但现在转储所有POST信息。 :(
我是不是有办法从php处理页面模拟表单提交?我认为curl可以为我做到这一点,但到目前为止它似乎只是将POSTS发送到netherworld但实际上没有重定向浏览器。
我想我可以打印出一个带有隐藏变量的表单,然后用html或javascript重定向,但这看起来很愚蠢。此外,我可以将处理器直接集成到表单页面中,我可能会这样做,但我不想重新安排很多东西。
答案 0 :(得分:4)
通常,我会使用相同的页面进行表单输入和表单处理。在页面顶部,检查POST变量,并进行相应处理。我构建一个包含任何错误的字符串。然后在处理代码结束时,如果有错误,请重新显示包含错误的条目页面。否则,重定向或显示感谢页等。
您还可以使用jQuery,在停留在页面上时提交表单,并处理响应(显示返回或重定向的错误)。有很多方法可以解决您的问题。
答案 1 :(得分:3)
<?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中。