TP 表单验证 防止重复提交

第一步
服务器先生成一个token值

    public function handle($input, $biz)
    {
        $request = \think\facade\Request::instance();

        return ['data' => $request->token()];
    }

第二步
前端获取到此token值,通过表单请求

<input type="hidden" name="__token__" value="{$token}" />

第三步
表单验证

	public function handle($input, $biz)
	{
		//输入验证
		$validate = new TradeValidate();
		if (!$validate->scene('settle')->check($input)) {
			throw new ValidateException($validate->getError());
		}
	}
<?php
namespace validate\shop;
use think\facade\Cache;
use think\Validate;

/**
 * 校验
 */
class TradeValidate extends Validate
{
    //规则
    protected $rule = [
        '__token__'           => 'require|token'
    ];

    //信息
    protected $message = [
        '__token__.require'   => 'token为必填项',
    ];

    //场景
    protected $scene = [
        'settle'              => ['__token__'],
    ];
}

如果遇到提示“令牌无效”的情况,就表示在第一步生成的token值没有在项目中共用到,则修改session的配置,项目config目录下找到session.php文件
在这里插入图片描述
原来那个id值是空的,给他添加一个值 “PHPSESSIDSRS”,或者自己整个其他的值都行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值