【问题标题】:Stay on current page after POSTPOST 后留在当前页面
【发布时间】:2011-01-04 12:48:56
【问题描述】:

我有一个表单,一旦按下提交按钮,它就会转到一个空白页并在该空白页上返回任何错误消息。但是我有一个网站模板,我希望我的脚本能够运行,并返回执行 POST 操作的页面并将任何错误消息放在该页面上。

正在发生的事情的示例: 页面请求发布 ----> 脚本运行 ---> 返回错误消息

我想要它做的是: 页面请求发布 ---> 脚本运行 ----> 转到请求发布的页面 ----> 显示脚本选择的任何错误消息。

【问题讨论】:

  • 如果我不明白你想要什么,你应该将页面提交到与显示页面相同的脚本。

标签: php post


【解决方案1】:

当然可以,只需将表单的 Action 设置为当前页面即可。然后$_POST 将包含用户在表单中填写的所有值。

【讨论】:

  • 我更喜欢将我的脚本分开,还有其他方法吗?
  • 使用包含,你可以将它们分开。
  • @bazmegakapa:你是个聪明人!我完全忘记了 Include!
  • 我有一个问题,如何检查是否已调用 POST?我的脚本在没有 POST 的情况下自行运行。
  • 使用isset,您可以检查您提交的表单中是否存在任何键。
【解决方案2】:

你有两个选择。我假设您将转到一个空白页面,因为您的 POST 转到一个与它发布的页面不同的 PHP 脚本。

选项 1 - 发布到与您发布的页面相同的 PHP 页面。

选项 2 - 发布并生成错误后,重定向回页面,并将错误存储在会话或 cookie 中,以便可以在原始页面上呈现它们。

【讨论】:

    【解决方案3】:

    假设包含请求表单的页面也能够显示错误消息,请将表单属性设置为包含表单的页面的 url(如 TJHeuvel 所述)或将操作属性设为空,例如,<form action=""> .

    【讨论】:

      【解决方案4】:

      转到空白页面后,将所有已发布的变量存储在您的变量中,例如 $get,语法为 param1=value1&param2=value2 and so on...,并通过 header("Location: back.php?$get"); 重定向回来,并在您的主页中通过 $_GET 回显所有变量

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-04
        • 2017-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-12-01
        • 1970-01-01
        相关资源
        最近更新 更多