【问题标题】:How to implement a time wait before html form resubmission?如何在html表单重新提交之前实现时间等待?
【发布时间】:2011-08-08 14:07:57
【问题描述】:

我有一个将数据插入数据库的 html 表单。我刚刚构建它..它非常基础,因为我这样做只是为了学习。在这样做时,我看到我可以点击后退浏览器按钮并再次发布..再一次..再一次..它一直在写入数据库。

我曾在网站上看到我尝试重新提交信息,但它告诉我必须等待 60 秒(或其他任何时间)。这是解决此问题的首选方法吗?如果是这样,如何去实施它?

或者也许你会以不同的方式处理它?

【问题讨论】:

  • 您希望用户能够重新提交吗?如果不是,则在提交后发送一个“位置”http 标头以将用户重定向到新页面。这样他们就无法刷新或返回并重新提交数据。
  • 这不会阻止他们再次导航到表单并再次提交。
  • @Andi 为什么你的头像是被谋杀的女孩的照片?
  • @Dan:非常正确,但是问题的提出方式让我相信这不是关于 60 秒,而是关于重新提交已经发布的数据。

标签: mysql html forms post


【解决方案1】:

当你插入一行时,将提交时间存储在表中,或者用户的会话中。

每当您处理表单时,将该时间与当前时间进行比较。如果在 60 秒内,则显示错误而不是插入一行。

【讨论】:

    【解决方案2】:

    有两种方法:

    i) 简单的客户端 javascript: 将上次事件的时间存储在 javascript 变量中, 当用户再次执行该事件时,发送有关时间的警报消息。 (此方法可能会被懂 javascript 的用户愚弄)

    ii) 表单发布完成后,将最后一个事件的时间存储在后端的数据库中。当同一张表单再次发帖时,检查时间,如果允许,则进行处理,否则回复有关时间的消息。

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      相关资源
      最近更新 更多