【发布时间】:2018-03-23 16:43:22
【问题描述】:
由于提交了多个表单,我遇到了一些问题。 我使用 laravel 作为框架并创建一个浏览器游戏(我知道,有数百万)只是为了好玩。
我有一个带有“Construct”按钮的建筑物页面,该按钮采用表单(method =“post”)。
如果我按住 Enter 4-5 秒,将会触发许多请求,并且用户可以在数据库中创建许多记录。
我不想要像这样的唯一客户端修复
$(document).on('submit', 'form', function() {
$(this).find('button:submit, input:submit').attr('disabled', 'disabled);
});
因为永远不要相信客户。
这里有人有解决方案吗(也许用 laravel)?
提前致谢。
最好的问候。
【问题讨论】:
-
生成随机令牌。将令牌放入会话中。将令牌作为隐藏字段放入表单中。如果收到的令牌等于会话中的令牌,则在提交时执行数据库中的所有内容并从会话中删除令牌。
-
所以,我总是生成一个表单令牌并将其保存到会话中。而且每个表单都有一个包含此标记的隐藏输入字段,对吧?
-
将中间件用于路由组 (laravel.com/docs/5.6/routing#route-group-middleware) 您可以查看::share (laravel.com/docs/5.6/views#sharing-data-with-all-views) 随机令牌并保存在会话中。
标签: php forms laravel submission