当前位置: 首页 > 面试题库 >

按下F5时避免在php中重新提交表单

韩善
2023-03-14
问题内容

我的网站上有以下代码(使用php和smarty),试图避免在我按f5时重新提交表单:

if ($this->bln_added == false) {
    if (isset($_POST['submit'])) {
        $this->obj_site->obj_smarty->assign('title', $_POST['tas_heading']);
        $this->obj_site->obj_smarty->assign('desc', $_POST['tas_description']);
    }
} else {
    $this->obj_site->obj_smarty->assign('title', '');
    $this->obj_site->obj_smarty->assign('desc', '');
    unset($_POST);
}

bln_added默认情况下为false,但一旦成功提交表单,则更改为true。模板中使用了smarty变量title和desc来将表单内容保留在其中,以防出现用户错误并且需要更改其输入内容。

如果成功提交了表单,则它将bln_added = true设置为第二位,因此代码的第二位不仅应清除表单字段,还应清除$
_POST空。但是,如果按f5键,则发布数据仍然存在。

有任何想法吗?


问题答案:

您的方法在理论上可以起作用,但是有一种更简单的方法。

成功提交表单后,html" target="_blank">执行重定向。没关系,但是会清除$ _POST。

header('Location: http://www.example.com/form.php');

就您而言,这听起来像您想重定向到已经打开的页面。如果要显示确认消息,请在URL上附加$ _GET参数。

希望这可以帮助,

汤姆



 类似资料:
  • 问题内容: 我有一个简单的表单,可将​​文本提交到SQL表。问题在于,用户提交文本后,他们可以刷新页面,并且无需再次填写表单即可再次提交数据。提交文本后,我可以将用户重定向到另一个页面,但是我希望用户停留在同一页面上。 我记得读过一些有关为每个用户提供唯一的会话ID并将其与另一个值进行比较的信息,这些值解决了我遇到的问题,但我忘记了它在哪里。 问题答案: 使用发布/重定向/获取模式。 在我的网站上

  • 问题内容: 有没有一种方法可以避免在刷新php页面时重新处理表单?我想防止重新刷新表单中带有插入功能的php文件的链接。例如,我正在处理用户在每页顶部写的一系列便笺以获取新便笺。除了创建带有标头功能的独立php文件外,还有另一种方法吗? 问题答案: 使用Post-Redirect-Get模式。 接受发布请求 处理数据 发出重定向响应 接受获取请求 发出200回应 如果您需要显示提交的数据中的数据,

  • 本文向大家介绍javascript实现避免页面按钮重复提交,包括了javascript实现避免页面按钮重复提交的使用技巧和注意事项,需要的朋友参考一下 绑定事件即可调用 以上就是本文的全部内容了,小伙伴们拿到自己项目中测试下吧。

  • 本文向大家介绍php解决和避免form表单重复提交的几种方法,包括了php解决和避免form表单重复提交的几种方法的使用技巧和注意事项,需要的朋友参考一下 前言 为什么要避免form表单被重复提交呢?因为我们不想让我们的服务器重复处理没必要的数据,同时我们也是避免我们的数据库产生重复的数据,避免表单重复提交也是让我们的网站更安全的一种表现。 先看一下有哪些情况下回导致表单重复提交呢,知道哪些情况下

  • 问题内容: 我使用twitter-boostrap,我想在表单中使用这些单选按钮。问题是,当我单击这些按钮中的任何一个时,将立即提交表单。如何避免这种情况?我只想使用默认按钮,例如单选按钮。 从: javascript: 问题答案: 根据优良的HTML5规范: 甲 按钮 没有元素 类型 指定属性表示相同的事情与它的类型属性集的按钮元件到 “提交” 。 并且a 提交表单而不是像简单的按钮那样操作。

  • 这是我的第一次。php页面是html部分。我有一个表单,包括一个div和一个submit按钮。我希望当点击按钮时,打开一个新页面(second.php)并显示div的内容(id=orderList) 这是javascript部分; 这是第二.php我想在div(id=confirmForm)中显示内容的地方 不管用,我该改什么?