这与预防webform resubmission有关,但是这次上下文是基于网络的RPG。玩家击败怪物后,会掉落物品。所以我想阻止用户点击后退按钮,或者不断刷新,以“欺骗”项目丢弃。PHP - 这是防止重新提交的好方法吗?
由于物品掉落频繁,使用数据库来存储唯一的'drop-transaction-id'似乎不可行。我下面娱乐的想法:
对于每一个战斗的基础上,当前日期与时间,用户的ID,并将其存储到数据库和会话创建独特的价值。有可能给定一个用户ID,你可以取回数值
如果来自会话的值存在于DB中,那么'战斗'是有效的并且允许用户访问所有与战斗有关的页面。如果它不存在于数据库中,则新的战斗状态开始
战斗结束时,唯一值从数据库中清除。
清除DB中30分钟的值。
任何意见,改进,或陷阱,以这种方法被欢迎
...因此,当他们不满意第一卷中的低级宝藏时,让他们重玩相遇。 – Residuum 2009-11-02 10:40:54
如果游戏主要是基于战斗而不会产生影响的,那取决于游戏的运行方式。 – Steerpike 2009-11-02 10:51:20
然后你最终得到小便秘法。永远不要相信客户。 – 2009-11-02 11:18:17