鍍金池/ 問答/PHP  網(wǎng)絡(luò)安全/ thinkphp5 表單令牌

thinkphp5 表單令牌

請問thinkphp5 的表單令牌怎么使用?官方手冊講的比較模糊,最好有個完整的流程。。。謝謝。

回答
編輯回答
裸橙

大致流程如下:

視圖層

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/test" method="post">
    {:token()}
    username:
    <input type="text" name="username">
    email:
    <input type="email" name="email">
    <input type="submit" value="submit">
</form>
</body>
</html>

驗(yàn)證器User

<?php

namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    protected $rule = [
        'username'  => 'require|max:25|token',
        'email'     => 'email',
    ];
}

Controller層

<?php

namespace app\index\controller;

use think\Controller;
use think\Request;

class Index extends Controller
{
    public function index()
    {
        return view('index');
    }

    public function test(Request $request)
    {
        $result = $this->validate(
            [
                '__token__' => $request->param('__token__'),
                'username'  => $request->param('username'),
                'email'     => $request->param('email'),
            ],
            'app\index\validate\User'
        );
        if ($result !== true) {
            dump($result);
        } else {
            dump($request->param());
        }
    }
}
2017年3月28日 07:22
編輯回答
夏木

樓上的寫的太詳細(xì)了,給個贊!

2018年3月15日 13:22