本节课我们来学习一下模版的杂项和表单令牌的功能。
一.模版的杂项
1. 有时,我们需要输出类似模版标签或语法的数据,这时会被模版解析;
2. 此时,我们就使用模版的原样输出标签{literal};
{literal}
变量标签形式:{$name}
{/literal}
3. 对于在 HTML 页面中的标签,用 HTML 注释是无效的,需要模版定义的注释;
{//$name}
{/*$name*/}
{/* 多行注释
*/}
4. 注释和{符号之间不能有空格,否则无法实现注释隐藏;
5. 生成编译文件后,注释的内容会自动被删除,不会显示;
二.表单令牌
1. 表单令牌就是在表单中增加一个隐藏字段,随机生成一串字符,确定不是伪造;
2. 这种随机产生的字符和服务器的 session(开启)进行对比,通过则是合法表单;
<form action="http://localhost/tp6/public/verify/token" method="post">
<input type="hidden" name="__token__" value="{:token()}">
<input type="submit" value="提交表单">
</form>
3. 为了验证系统内部的机制,可以通过打印测试出内部的构造;
//打印出保存到 session 的 token
echo Session::get('__token__');
4. 在验证端口,可以使用控制器验证单独验证 token 是否验证成功;文章来源:https://www.toymoban.com/news/detail-409749.html
$check = Request::checkToken('__token__');
if(false === $check) {
throw new ValidateException('令牌错误');
}
5. 验证器部分,只要使用内置规则 token 即可验证,具体流程如下:
文章来源地址https://www.toymoban.com/news/detail-409749.html
$validate = \think\facade\Validate::rule([
'name' => 'require|token'
]);
$result = $validate->batch(true)->check([
'name' => input('post.name'),
'__token__' => input('post.__token__')
]);
if (!$result) {
dump($validate->getError());
}
到了这里,关于Thinkphp 6.0模版的杂项和表单令牌的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!