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

这篇具有很好参考价值的文章主要介绍了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 即可验证,具体流程如下:
 文章来源地址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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

    在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 下载后,查看目录结构,tp6的目录结构和tp5不同,默认是单应用(只有一个模块),如果需要多应用,需要开启多应用模式,后面文章再讲。 主要用到的目录有

    2024年02月05日
    浏览(59)
  • 《Java设计模式学习》模版模式

    在这里,包括在很多的书中,我们都会看到设计模式的Demo都很简单。但是我们在实际开发过程中,却往往很少用到类似的设计模式。 但是大家在看到这篇文章的时候,希望大家可以动手敲一下。也许在敲击的过程中,你能获取到一定的灵感,在未来的工作中能够有所帮助。

    2024年02月08日
    浏览(45)
  • Gin学习记录3——模版与渲染

    如果只是想返回数据,可以使用以下函数: 例如: 则会返回一个 JSON 使用模版前,需要载入模版: 使用 func (c *Context) HTML(code int, name string, obj any) 即可渲染: 每个模版的开始与结束需要使用 {{ define }} {{ end }} 来定义模版名称,比如: 载入的时候需要载入全部模版,调用时,

    2024年02月09日
    浏览(34)
  • web学习--登录认证--会话技术--cookie--session--令牌--java-jwt使用--jjwt使用

    前置学习: http springmvc 会话:用户打开浏览器,访问web服务器资源,会话建立,直到有一方断开连接会话结束,一次会话可以多次请求和连接 会话跟踪:一种维护浏览器状态的方式,服务器需要识别多次请求是否来自同一浏览器,以便同一次会话多次请求间共享数据。 cooki

    2024年02月15日
    浏览(67)
  • SpringSecurity学习(八)OAuth2.0、授权服务器、资源服务器、JWT令牌的使用

    OAuth2是一个认证协议,SpringSecurity对OAuth2协议提供了响应的支持,开发者可以非常方便的使用OAuth2协议。 简介 四种授权模式 Spring Security OAuth2 GitHub授权登录 授权服务器与资源服务器 使用JWT OAuth是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源

    2024年02月02日
    浏览(60)
  • thinkphp学习08-数据库的链式查询

    前面课程中我们通过指向符号“-”多次连续调用方法称为:链式查询,当 Db::name(‘user’)时,返回查询对象(Query),即可连缀数据库对应的方法,而每次执行一个数据库查询方法时,比如 where(),还将返回查询对象(Query),只要还是数据库对象,那么就可以一直使用指向符号进

    2024年01月21日
    浏览(38)
  • thinkphp学习06-连接数据库与模型初探

    插入数据 修改.env数据库配置 测试环境下是可以使用的,但是到了线上建议配置到config下database.php 可以通过删除改变.env 的配置,或删除.env 来验证 database 的执行优先级,经过验证可知:.envdatabase.php 新建DataTest.php connections 配置数据库连接信息,可以是多个数据库,便于切换,

    2024年01月16日
    浏览(37)
  • 【C语言学习教程---1】VC++6.0的安装和创建简单C语言工程文件教程

    事物的难度远远低于对事物的恐惧 在学习C语言之前,首先需要安装编译器软件,学习完理论知识及时动手操作是才能印象深刻,切勿纸上谈兵,这里选择安装的是一款比较经典的并且运行相对比较稳定的VC++6.0软件。 把软件资源下载到电脑上并进行解压,下载地址: 链接:

    2024年02月08日
    浏览(51)
  • PostgreSQL是什么?它有什么功能和特性?它值不值得我们去学习?我们该如何去学习呢?

    PostgreSQL是一种开源的对象关系数据库管理系统(ORDBMS),它是一种高度可靠的数据库系统,具有丰富的功能和强大的性能。PostgreSQL的发展历史可以追溯到1986年,最初是由加拿大的计算机科学家Michael Stonebraker领导的一支研究小组开发的。PostgreSQL是一个强大的数据库系统,它

    2024年01月20日
    浏览(83)
  • 英语在线学习考试系统 微信小程序python(flask+django)/thinkphp/nodejs/

    小程序Android端运行软件  微信开发者工具/hbuiderx uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。 前端:HTML5,CSS3 VUE 后端:java(springboot+ssm)/python(flask+django)/thinkphp/nodejs/ 开发运行:微信开发者/hbuilderx 后端:idea/eclipse/vscode/pyc

    2024年04月15日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包