问题大了,提交后竟然插入了两条相同记录。更奇怪的是....

keaizhong 2005-05-07 09:25:19
更奇怪的是我自己的机子里插入的时候是正常的。
放到测试空间里也是正常,但到了客户正式空间里的时候却出现每次插入出现两条重复记录的情况。

我的平台是:php4+mysql4+window XP+iis
测试空间和客户正式空间都是:linux+php+mysql+apache

提交后我是利用JS中的location.href来返回页面的,同时也用
echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=".$_SESSION["HTTP_REFERER"]."\">";
试过返回,都会产生两条重复记录的情况。

还试过返回提交页面和返回其它页面的情况,重复依旧。


请问这种情况和什么有关系呢?
...全文
236 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
keaizhong 2005-05-10
  • 打赏
  • 举报
回复
回复人: bflovesnow() ( ) 信誉:100 2005-05-10 09:21:00 得分: 0


看看是不是你的 submit 按钮上还有一个提交的事件
如果有的话,就会提交 2 次。

以前在 ASP 中遇到过,希望能有帮助。



爱死你了,就是这个问题。真是晕人,竟然败在此小问题上。
百密一疏呀。。。。
wanbb 2005-05-10
  • 打赏
  • 举报
回复
是不是刷新了
bflovesnow 2005-05-10
  • 打赏
  • 举报
回复
看看是不是你的 submit 按钮上还有一个提交的事件
如果有的话,就会提交 2 次。

以前在 ASP 中遇到过,希望能有帮助。
bingbingcha 2005-05-10
  • 打赏
  • 举报
回复
重新做个页面..手写代码..只写个插入语句..表单和这个一摸一样的..测试看看是否有问题..

如果没有..替换刚才的页面..如果有..再换个别的表单..插入到别的表单看看是否可以...如果这个行.则数据表重新导出再导入新的...

以上步骤全部在Linux平台下操作..
keaizhong 2005-05-10
  • 打赏
  • 举报
回复
天那!!偶把所有的不相关语句都注释掉了,只剩下一个插入语句,最后还是一次插入同样的两条(auto_increment属性字段的值不同)。
但是我打印出偶的记录是没有问题的,大家看呀。。。

INSERT INTO `t_article`(ctitle, ccontent, tdate, cusername, fdisplay, cfromip, ftopicid) VALUES('dfgs sd s f', 'sd fsd fs f', now() , 'admin', '1', '61.175.216.230', '2')

和大家说一下的是我是用PHPLIB做代码的,也就是插入的时候是利用MYSQL那个类库处理的,我的大部分项目中都这样子用没有问题的,为什么偏偏这个会出问题?而且是这么BT的问题。真想哭呀!!!
zhutimy 2005-05-08
  • 打赏
  • 举报
回复
$_SESSION["HTTP_REFERER"]
会不会是这个的问题?
carolsitu 2005-05-08
  • 打赏
  • 举报
回复
能否把提交部分的代码贴出来? 方便检查是提交流程的判断有问题还是客户的重复提交
jzywh 2005-05-08
  • 打赏
  • 举报
回复
我也出现过这种问题!
zalvsa 2005-05-08
  • 打赏
  • 举报
回复
我踫到的情況就是由於user操作太快(也不見得是服務器反映太慢)造成的,所以我就控制了提交后提交的動作就失效,比如説submit的按鈕啊,或者button等。
keaizhong 2005-05-07
  • 打赏
  • 举报
回复
没有用这个。就是一般的插入语句了。
插入->判断是否插入成功->成功后提示并用上面提到的方式返回页面
ronin_china 2005-05-07
  • 打赏
  • 举报
回复
是不是autocommit造成的
keaizhong 2005-05-07
  • 打赏
  • 举报
回复
还有一点忘记说了。
添加成功的时候我都有成功提示,再返回的。
我这里重复添加也只提示了一次添加成功。
keaizhong 2005-05-07
  • 打赏
  • 举报
回复
回复人: leo963258(读书之人) ( ) 信誉:100 2005-05-07 09:29:00 得分: 0


因为你第一提交时.表单中的纪录,提交上去了。但是并没有清空!!
在这个时候,你刷新了一下.等于把这个表单重新提交了一次!!



我这两个返回的方法有刷新吗??那为什么我的机子里不会呢?
edlongren 2005-05-07
  • 打赏
  • 举报
回复
JS返回

echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1; URL=".$_SESSION["HTTP_REFERER"]."\">";

只需要用一个就行了~~
建议直接用JS
<script language="JavaScript">
location.href="(前一页面地址)";//这里的地址最好不要用变量取~~直接给一个地址。
</script>

leo963258 2005-05-07
  • 打赏
  • 举报
回复
因为你第一提交时.表单中的纪录,提交上去了。但是并没有清空!!
在这个时候,你刷新了一下.等于把这个表单重新提交了一次!!
keaizhong 2005-05-07
  • 打赏
  • 举报
回复
回复人: zalvsa(zalvsa) ( ) 信誉:100 2005-05-07 16:08:00 得分: 0


樓主有在用戶的空間上操作嗎?
是不是服務器反應太慢,user點了一次提交又點一次提交造成的?
實在不行的話,就對表的字段設置惟一的屬性。


速度不慢,表中已经设置唯一值。
真奇怪了,这问题怎么会这么烦人呢?
之前好像有人讨论过。
没有仔细看那帖子。:(
zalvsa 2005-05-07
  • 打赏
  • 举报
回复
樓主有在用戶的空間上操作嗎?
是不是服務器反應太慢,user點了一次提交又點一次提交造成的?
實在不行的話,就對表的字段設置惟一的屬性。
keaizhong 2005-05-07
  • 打赏
  • 举报
回复
编辑器?你说的是哪个呀?
我的表单里有个iframe,是一个在线的编辑器,以前[偶然]的那个。
不会和这个有关系吧。我的其它系统里也用过这个的。
jzywh 2005-05-07
  • 打赏
  • 举报
回复
用的是什么编辑器,也可能是编辑器的问题

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧