刷新浏览器在数据库中添加重复条目 - php

时间:2012-02-02 05:11:44

标签: php

我有一个表单,其中用户输入一些详细信息,然后单击保存按钮将数据保存在数据库中。现在点击保存,如果我刷新页面浏览器请求重新发送。如果我们重新发送它,那么重复数据库中可用的条目。我的数据库插入过程在同一页面上。在单页上完成处理后是否可以防止重新发送?

提前谢谢

3 个答案:

答案 0 :(得分:1)

一种方法是通过在PHP代码中添加类似的内容来使浏览器的缓存无效:

 header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" );
 header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
 header( "Cache-Control: no-cache, must-revalidate" );
 header( "Pragma: no-cache" );

答案 1 :(得分:0)

没有。向表单添加一个隐藏字段,用于唯一标识事务,如果看到相同的事件,则拒绝更新。

那,或者预先形成重定向到另一个页面,以便将其转换为GET请求。

答案 2 :(得分:0)

  1. 您可以在使用insert

  2. 提交和执行header("Location: somepage.php")后重定向用户
  3. 你可以(我认为应该)在数据库中使用唯一约束(例如对于Postgres:CONSTRAINT c_name UNIQUE (field_name)