PHP清除浏览器缓存以避免刷新后重新发送表单数据

Jor*_*rge 5 php browser caching

我正在开发一个PHP-MySQL应用程序,使注册用户能够输入文本注释.问题是:

  1. 用户登录网站 - 好的
  2. 用户提交了一个表单来提交文本评论 - OKAY
  3. 用户输入文本注释并提交 - OKAY
  4. 我有一个程序可以清理注释并将其保存到MySQL中(使用userid,textcomment,datetime戳)并向用户显示他/她的评论已输入 - OKAY
  5. 用户决定刷新浏览器 - 输入重复的评论 - 很糟糕!

我在想3个选择:

  • 选项1:检查的例程:上次用户发表评论,如果是,请检查这是否重复.如果重复则显示错误消息.
  • 选项2:不允许用户过快发布的例程.所以基本上不允许在1分钟左右发布评论.因此,如果浏览器刷新,则注释将被忽略.
  • 选项3:操作浏览器缓存以清除其内容,以便刷新时不会输入任何重复内容.

现在在我的应用程序的上下文中,我对OPTION 1和OPTION 2的关注是性能PHP-MySQL,因为我已经在推送/从数据库获取数据的同一页面中有各种查询.因此,选项3可能会以不同的方式解决问题.

问题是:如果我选择第3选项,这可以被视为最佳实践吗?意味着清除浏览器缓存是最有效的解决方案吗?我看过那也有后果吗?你的想法很感激!

Kla*_*sen 4

只需在将数据提交到数据库后进行重定向即可。这是一种常见的做法。

http重定向指示浏览器为指定的 url 发出 http (与用于提交表单的GEThttp 相对)。POST如果您在将数据插入数据库后立即执行此操作,则当用户刷新浏览器时,除了再次看到同一页面之外,不会发生任何事情。

SO 上的这个问题告诉你如何使用 php 重定向。