php+mysql 写的新闻审核,为什么偶尔会插入两条一模一样的数据?很多时候是正常的。

2024-11-11 13:54:22
推荐回答(2个)
回答1:

发生这个情况,代码你提交的时候对按钮进行了双击。这个时候,你可以加入验证码的验证(这就是验证码的作用,防止重复提交),还用再sql语句中进行比对,如时间验证(在一定时间内同一个ip不能提交),标题或者其他验证(验证标题是否重复)等,来排除插入2条数据的问题!

回答2:

这些代码看上去是没问题的;可以再做一些数据检测;
echo '

感谢您的审核,本条新闻已成功发布成功。

';
echo "请返回
";
exit(); //这里写个中断程序往下执行

不过我有个疑问,为什麽要用2个表去存储相同的数据呢?为什麽要把数据写到“主页新闻表”in_news 呢?看上去“主页新闻表”主要是存储通过审核的数据,在in_newstg表中,已经有chk=1 来区别是否被审核了;要调用数据那只要$sql = "select * from $tbname where chk=1 ";
不就可以了吗?这样避免了相同数据多次存储操作而引发隐藏错误!