首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  HTML/JS/CSS技术专区 » [原创]如何刷新时不让重复插入记录?  


  作者:lansure
  注册时间:2005-11-15
  主题/回复:2/1
  积分:411
  等级:★★☆(五级)
  称号:略有小成

  lanxn2@126.com
  未提供
  www.

 

 发表:2005-11-19 05:37:26 阅读 3225 次 回复 4 次 得分3  |   字号 字色
[原创]如何刷新时不让重复插入记录?
   我做留言办时,每当刷新后,都会重复插入记录进数据库,该怎么办?
 
 1#楼  
 
  回复人:danssion
  注册时间:2005-06-30
  主题/回复:43/107
  积分:723
  等级:★★★(六级)
  称号:声名鹊起

用户联系方式已设置为保密
 1#楼 发表于2005-11-19 19:15:47  评分:1 

数据库插入前做个判断啊
 2#楼  
 
  回复人:lansure
  注册时间:2005-11-15
  主题/回复:2/1
  积分:411
  等级:★★☆(五级)
  称号:略有小成

   
 2#楼 发表于2005-11-19 20:16:59  评分:× 

怎样判断?可否详细点?
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2005-11-20 22:18:40  评分:1 

防止重复插入纪录,一般有两种情况:
一是无意的情况。由于程序编写的不严谨,造成有些用户在提交了信息后不小心刷新了页面,或者由于网络速度的原因可能点了多次提交,造成重复插入。这种情况容易解决,在插入数据库页面执行完毕后,用自动转页函数转到另外一个页面,比如从reg.php输入数据,提交到write.php,在write.php中将接收到的数据写入数据库,然后自动跳转到ok.php,在ok.php中提示插入成功!这样用户基本上点了提交按钮之后看不到write.php而是看到了ok.php。这样即使刷新ok.php也不会导致重复插入。因为插入的代码在write.php中。
第二种情况是恶意的刷新。有的人故意想通过刷新来产生大量垃圾信息,或者想恶意挤占数据库资源,这样的情况你使用上面的方法是不行的,因为他可以点击后退按钮来刷新write.php,所以这时候可以加一个时间限制,来防止重复插入,比如很多论坛都设置了在一定时间内不能重复发贴。也就是记录下每个用户的最后发贴时间,如果不是用户系统,而是任何人都可以发贴,那可以判断IP地址。这样,当某个用户再往数据库中写入纪录时,如果没有达到所要求的间隔时间,那么不进行插入操作。这样可以防止重复插入。
 4#楼  
 
  回复人:Miyahoo
  注册时间:2004-04-04
  主题/回复:39/255
  积分:1210
  等级:★★★☆(七级)
  称号:论坛贤士

   
 4#楼 发表于2005-11-25 17:14:37  评分:1 

或者设置禁止缓存叶面。

有的网站上,你刷新页面出现网页已过期的提示,就是这样做的。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.004sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版