通过PHP将POST数据从一个页面发送到另一个页面

时间:2018-01-06 12:33:13

标签: javascript php jquery curl header

短: 有没有办法将POST数据从中间PHP页面发送到另一个结果页面?

长: 我有一个页面,让我们说A.php表格存在。数据填写在表单中,并通过POST发送到另一页B.php

B.php检查该值并发现输入的值不正确(表单验证)。我们重定向回A.php,消息“无效”

现在我发送的数据是这样的:

header("Location:A.php?msg=Invalid");

但是我想通过POST方式发送它来隐藏用户的URL中的msg部分。

我没有被迫使用任何特定的方法。这只是我正在研究的一个项目。所以,请赐教。

到目前为止,我开始知道在PHP中使用header我们无法做到这一点。

1 个答案:

答案 0 :(得分:0)

更好的方法是始终回发到同一页面。如果出现错误,您只需显示它而无需重定向。

如果没有错误,则重定向到结果/响应页面。

这样做的好处是:

  1. 无需通过重定向发送可能是私有的数据
  2. 如果出现错误,则刷新POST将继续失败并继续仅显示错误消息并允许用户更正错误
  3. 如果没有错误,则重定向将删除POST操作并将其替换为新的GET操作。
  4. 刷新结果页面不会产生另一个POST操作,这可能会导致数据/数据库出现问题。
  5. 发生的事情的例子:

    • 首先,浏览器发送a.php
    • 的GET请求
    • 在表单提交时,浏览器会发送a.php
    • 的POST请求
    • 如果a.php的代码检测到错误,则只需重新呈现同一页面,其中填写的表格标记为POST值。
    • 如果a.php的代码未检测到错误,则会执行保存数据所需的任何操作,然后发送b.php的重定向请求。
    • 浏览器发送b.php的GET请求,并从其历史记录中删除a.php
    • b.php会显示某种感谢信或确认信。