javascript - Laravel 一天只允许一次提交
问题描述
昨天遇到一个不知道的问题,在google上搜索了还是没找到,希望有人知道这个问题的原因
我做了一个这样的表格:
<form action="{{ route('file') }}" method="post" enctype="multipart/form-data">
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control">
<span class="help-block text-danger"></span>
</div>
<div class="form-group ">
<label>address</label>
<textarea type="text" name="address" class="form-control"></textarea>
<span class="help-block text-danger"></span>
</div>
<div class="form-group ">
<label>date</label>
<input type="text" name="date" class="date form-control"></input>
<span class="help-block text-danger"></span>
</div>
<div class="form-actions">
<button type="submit" class="btn btn-primary">Upload</button>
</div>
</form>
我的问题是,当有人提交时,有人可以重新提交,我希望有人提交时他不能再次提交,直到一定的时间限制,例如2小时。但是其他没有提交的人仍然可以提交(这就像谷歌表单问卷,人们无需登录)
如果你能解决这个问题,请帮助我,非常感谢
解决方案
我认为您不需要做任何数据库工作,但这更取决于您的情况。
但是,要直接回答您的问题,您可以Illuminate\Routing\Middleware\ThrottleRequests
在file
路线上添加。
节流是在 IP 级别完成的,所以我认为这正是您所需要的:https ://monosnap.com/file/PXayGqUwDI5C3kGwiwgFEFodT70nJd
// route is accessible from IP once every 120 seconds
Route::post('file')->name('file')->middleware('throttle:1,120');
通过这样做,当同一个 IP 在这 120 秒内再次尝试访问该路由时,他会得到一个ThrottleRequestsException
异常(您可以在App\Exceptions\Handler
课堂上处理)
您可以找到文件throttle
中定义的中间件App\Http\Kernel.php
。
推荐阅读
- vb.net - 如何使用映射文件 vb.net 按字典顺序排列数组
- python - 如何解决 python 机械化库上的 ssl 版本?
- angular - 了解@input - 从父母到孩子
- npm - 如何在失败的构建中查看详细的错误消息
- python - 如何在 Pandas 中更好地执行此步骤:计数、删除列、删除重复项
- c++11 - JeMalloc 不创建内存泄漏转储
- charts - 如何在颤动图表内单击时显示项目的数据值
- google-chrome - 浏览器未显示预期的证书错误
- meteor - 按类别过滤不能与远程搜索正常工作?
- react-native - 以编程方式关闭警报以本机反应