繁体   English   中英

防止两次执行php脚本

[英]Prevent executing php script twice

也许有人问过这个问题。 但是找不到任何解决方案,因此我自己发布了此信息。

由于浏览器挂起或网络速度过快,我需要防止多次执行php脚本(codeigniter)。 因此,它为单个数据创建了多个条目,日期时间差为1-2分钟。

卡在这附近。 需要解决方案。 任何帮助将不胜感激!

简单的解决方案-使用表单键。 每次渲染表单时,请创建一个随机的唯一字符串,并将其作为隐藏字段附加到表单中。 除此之外,将此密钥存储在带有时间戳的表中。 如果需要,您还可以将该条目与当前用户相关联。

用户发布表单后,您只需要检查表中是否存在键并将其删除。 如果密钥不存在-显示某种错误消息。

这种方法的好处还在于,可以防止csrf攻击。

如果您不想使用表,也可以将formkey存储在users会话中,但是如果您想同时支持带有表单的多个打开的浏览器窗口,则这样做会导致额外的工作。

还使用cookie内置了csrf。 您只需要启用它( $config['csrf_protection'] = TRUE; ),然后使用form_open创建您的表单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM