用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3209|回复: 4
收起左侧

[HELP] 提问:关于防刷新机制的问题

[复制链接]
发表于 2009-4-21 11:39:13 | 显示全部楼层 |阅读模式
大家好,用了codeigniter一段时间
但是现在总有一个问题不知道如何下手。情况如下:
一个页面专门用于向数据库提交信息,但是提交成功后,用户可以通过返回上一个页面来刷新,这样数据库中就存在了两条同样的信息,虽然可以通过数据库检验来解决问题,但我想这并不是完美的方案。因为每次都还是需要向数据库进行查询,这样会占用很多的资源。
我一开始的想法是利用session来进行控制,但是codeigniter一旦在配置文件中自动加载了session或者是mysql的数据库连接,只要页面不关闭他们就一直有效,不知道codeigniter中是否有设置时间限制的地方。
另外一种方法就是利用页面防刷新机制,但是我不知道codeigniter中有没有防刷新的机制,请大家给我一个提示吧。
发表于 2009-4-21 14:02:12 | 显示全部楼层
我的办法是提交成功后立即 redirect 到一个新的页面,不过貌似不能解决防刷新问题。
CI 里没有防刷新机制。我觉得用 session 完全可以做到这个,可以在 session 记录一个时间,下次提交标点的时候检查这个时间,如果在某个时段内就不允许提交。
发表于 2009-4-21 16:52:41 | 显示全部楼层
可以用flashdata
发表于 2009-4-21 16:58:24 | 显示全部楼层
提交表单页设置一个flashdata标识
接受表单的controller中判断标识是否存在,如果存在就库操作,否则就提示提交重复或session过期失效。
发表于 2010-7-28 19:33:30 | 显示全部楼层
不知这个帖子的主人 ,最后是怎么样解决问题的

本版积分规则