gpt4 book ai didi

php - 防止手动页面刷新时插入重复记录

转载 作者:行者123 更新时间:2023-12-03 02:20:59 24 4
gpt4 key购买 nike

我有一个刚刚出现的问题。

我在 MVC 环境中工作。我的接口(interface)类中的方法名称与请求模块和操作的方法名称相匹配,即 ?module=test&action=action 将生成一个名为 public function test_action() { }

在这个特定问题中,我有一个提交自身的表单。如果验证通过,则会创建一条记录,然后显示另一个模块的模板。该模块需要一系列后置变量,因为它在两个模块中使用。

我遇到的问题是,如果用户成功通过验证并尝试 F5 页面,则会创建另一个新记录等。

如何防止这种情况发生?

通常情况下,我会在成功插入后进行 header 重定向,但在这种情况下我不能。

最佳答案

我会采取完全不同的方式。我什至发现重定向是处理此问题的错误方法,因为更改位置并不意味着克服逻辑/表单问题。

正确的解决方案是:

  • 在表单的隐藏输入中添加唯一的哈希
  • 将哈希值存储在服务器端 session 中
  • 发送表单后,使用服务器上的哈希值验证隐藏的输入哈希值
  • 仅在表单验证正确时才执行行插入。

如果您正在使用 Zend Framework,那么有一个 Zend_Form_Element_Hash 类适合您。

关于php - 防止手动页面刷新时插入重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com