laravel表单提交后台阻止重复提交

中间件:

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;

class LimitFormRepeatSubmit extends Middleware
{
     public function handle($request, Closure $next)
    {
        /****************************************
         * 1. 前端自己生成一个 form_token
         * 2. 如果 session 已经存在,则告诉重复提交
         ****************************************/
        $token = $request->input('form_token');
        if (cache()->has($token)) {
            return back()->with('status', '请不要重复提交');
        }

        //给token赋值,有效期1秒,1秒内不能重复提交
        cache([$token => 'value'], 1);

        return $next($request);
    }
}

前台代码:

<form action="">
    <input type="hidden" name="form_token" value="{{ str_random(40) }}">
  </form>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值