当前位置: 首页 > news >正文

Thinkphp 6.0模版的杂项和表单令牌

本节课我们来学习一下模版的杂项和表单令牌的功能。


一.模版的杂项


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 是否验证成功;

$check = Request::checkToken('__token__');
if(false === $check) {
throw new ValidateException('令牌错误');
}


5. 验证器部分,只要使用内置规则 token 即可验证,具体流程如下:
 

$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());
}

http://www.lryc.cn/news/56487.html

相关文章:

  • linux常问
  • ToBeWritten之物联网MQTT、Z-Wave等协议
  • C# 行为型模式之责任链模式
  • layui实现请求前添加一个加载 loading 的效果,并在请求成功后关闭
  • iostat / sar 命令详解
  • 2023-04-06:拥抱Golang,优化FFmpeg音频编码器,探究encode_audio.c的内部结构。
  • 归排、计排深度理解
  • 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)
  • 好像模拟了一个引力场
  • MySQL优化——Explain分析执行计划详解
  • xcode 14.3 file not found libarclite_iphoneos.a
  • 基于AI+数据驱动的慢查询索引推荐
  • 【ESP32】嵌入式FreeRtos--Task
  • 【操作系统】面试官都爱问的进程调度算法
  • Spring-Web spi机制解析
  • 数据结构|将链表中小于0的数全部放在大于0的数的前面
  • 分享106个ASP影音娱乐源码,总有一款适合您
  • win10 PyCharm Anaconda过程记录
  • Chrome扩展程序导出备份与本地导入浏览器
  • mysql常用运算符
  • PyTorch 深度学习框架:优雅而简洁的代码实现
  • 【SpringMVC】请求重定向和转发
  • Vue中@click的常见修饰符
  • 软件测试面试复盘:技术面没有难倒我,hr面被虐的体无完肤
  • vue实现鼠标移入移出事件+解决鼠标事件没有反应
  • 右键移动文件.cmd
  • web基础
  • 牛客网算法八股刷题系列(七)正则化(软间隔SVM再回首)
  • 开源即时通讯IM框架MobileIMSDK的微信小程序端开发快速入门
  • 【C++从0到1】11、C++中赋值运算