Laravel框架04:视图与CSRF攻击

news2024/11/19 1:25:49

Laravel框架04:视图与CSRF攻击

  • 一、视图概述
  • 二、变量分配与展示
  • 三、模板中直接使用函数
  • 四、循环与分支语法标签
  • 五、模板继承、包含
    • 1. 继承
    • 2. 包含
  • 六、外部静态文件引入
  • 七、CSRF攻击概述
  • 八、从CSRF验证中排除例外路由

一、视图概述

  • 视图存放在 resources/views 目录下。
  • 文件命名:
    1. 全部小写
    2. 后缀名是 .blade.php ,因为Laravel里面的模板引擎是blade。
    3. 如果名字不加 blade,只能使用原生语法,不能使用模板语法。
    4. 两种后缀的视图文件同时存在,blade模板文件优先显示。
  • 展示视图的方法:return view("视图文件名称");
  • 视图可以进行分目录管理。如果需要展示 home/test/test3 视图。可以写成:return view('home/test/test3')return view('home.test.test3')

二、变量分配与展示

  • 语法:
    1. view(模板名称, 数组),数组是需要分配的变量集合,数组是一个键值数组,键和变量名尽量一致。
    2. view(模板名称)->with(数组)
    3. view(模板名称)->with(名称, 值)->with(名称, 值)
  • 在模板中输出变量:{{$变量名}}
  • compact 函数是PHP内置函数,与框架无关。作用是打包数组。compact('变量名1', '变量名2', ...);
public function show() {
    $date = date('Y-m-d H:i:s', time());
    return view("home.test.test3", [
        "date" => $date,
        "method" => __METHOD__,
    ]);
}
<p>当前时间:{{$date}}</p>
<p>函数:{{$method}}</p>

在这里插入图片描述

三、模板中直接使用函数

  • 语法:{{函数名(参数)}},函数名可以是PHP内置的,也可以是Laravel框架中定义的。
<p>当前时间:{{$date}}</p>
<p>一年后:{{date('Y-m-d H:i:s', strtotime('+1 year'))}}</p>
<p>当前时间:{{$time}}</p>

在这里插入图片描述

四、循环与分支语法标签

  • 循环:@foreach() ... @endforeach

    public function label() {
        $data = DB::table("member")->get();
        return view("home.test.test4", compact('data'));
    }
    
    ID&emsp;&emsp;name&emsp;&emsp;age&emsp;&emsp;email
    @foreach($data as $k => $d)
        <br>{{$d->id}}&emsp;&emsp;{{$d->name}}&emsp;&emsp;{{$d->age}}&emsp;&emsp;{{$d->email}}
    @endforeach
    

    在这里插入图片描述

  • 判断:@if() ... @elseif() ... @else ... @endif

    public function label() {
        $data = DB::table("member")->get();
        $week = date('N');
        return view("home.test.test4", compact('data', 'week'));
    }
    
    今天是
    @if($week == '1')
        星期一
    @elseif($week == '2')
        星期二
    @elseif($week == '3')
        星期三
    @elseif($week == '4')
        星期四
    @elseif($week == '5')
        星期五
    @elseif($week == '6')
        星期六
    @else
        星期日
    @endif
    

五、模板继承、包含

1. 继承

  • 如果有的页面存在公共部分,则可以视图模板继承。

  • 父级页面:@yield('名字')。在父级页面中占位。

    <h1>头部</h1>
    {{--可变区域--}}
    @yield('mainBody')
    @yield('mainBody2')
    {{--可变区域--}}
    <h1>尾部</h1>
    
  • 子页面

    • @extends('需要继承的模板文件名')指定继承的模板。
    • @section("区块名") ... @endsection绑定区块到父级页面。
    • 不需要再写父页面中存在的部分。
    @extends('home.test.parent')
    
    @section("mainBody")
        <div>mainBody正文内容</div>
    @endsection
    @section("mainBody2")
        <div>mainBody2正文内容</div>
    @endsection
    

在这里插入图片描述

2. 包含

  • 语法:@include("模板文件名")
@include("home.test.parent")

六、外部静态文件引入

  • laravel中封装了一个方法 asset:
<link rel="stylesheet" href="{{asset('sass/app.css')}}">
  • asset 方法的参数可以是多级目录也可以是单级目录。

七、CSRF攻击概述

  • CSRF是跨站请求伪造(Cross Site Request Forgery)的缩写。
  • Laravel默认禁止CSRF:Laravel自动为每个用户Session生成一个CSRF Token,该Token可用于验证登陆用户和发起请求者是否是同一人,如果不是则请求失败。
  • csrf_token()获取Token值。只需要在HTML表单代码中添加<input type="hidden" name="_token" value="{{csrf_token()}}">
  • 如果提交表单时不带上token,则会提示 419
    在这里插入图片描述
  • 带上Token
    在这里插入图片描述
    在这里插入图片描述
  • 简化写法:{{csrf_field()}}
    在这里插入图片描述

八、从CSRF验证中排除例外路由

  • 并不是所有请求都需要避免CSRF攻击,比如第三方API获取数据的请求。

  • 在 app/Http/Middleware/VerifyCsrfToken.php 中可以添加请求白名单。
    在这里插入图片描述

  • 排除所有路由,使用通配符:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/374740.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Verilog 学习第五节(串口接收部分)

小梅哥串口部分学习part2 串口通信接收原理串口通信接收程序设计与调试巧用位操作优化串口接收逻辑设计串口接收模块的项目应用案例串口通信接收原理 在采样的时候没有必要一直判断一个clk内全部都是高/低电平&#xff0c;如果采用直接对中间点进行判断的话&#xff0c;很有可能…

CISP注册信息安全专业人员证书

一、什么是“CISP”&#xff1f; 注册信息安全专业人员(Certified Information Security Professional&#xff0c;简称“CISP”)&#xff0c;是安全行业最为权威的安全资格认证&#xff0c;由中国信息安全测评中心统一授权组织&#xff0c;中国信息安全测评中心授权培训机构进…

学习笔记之Vue中的Ajax(四)

Vue中的Ajax&#xff08;四&#xff09;Vue中的ajax一、解决开发环境Ajax跨越问题二、github 用户搜索案例2.1 准备工作2.2 静态页面2.3 实现动态组件2.4 注意细节三、vue 项目中常用的 2 个 Ajax 库3.1 axios3.2 vue-resource四、slot插槽&#xff08;四&#xff09;Vue中的aj…

计算结构体大小

计算结构体大小 目录计算结构体大小一. 结构体内存对齐1. 简介2. 嵌套结构体二. offsetof三. 内存对齐的意义四. 修改默认对齐数一. 结构体内存对齐 以字节&#xff08;bety&#xff09;为单位 1. 简介 对于结构体成员在内存里的存储&#xff0c;存在结构体的对齐规则&#…

代码随想录算法训练营day44 | 动态规划之完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ

day44完全背包基础知识问题描述举个栗子518. 零钱兑换 II1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组377. 组合总和 Ⅳ1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例来推导dp数组完全背包基…

安全合规之CVE-2016-2183

文章目录概述分析解决补充信息概述 安全部门脆弱性扫描到如下的风险漏洞要求系统上线必须要修复完毕。 不过我仔细的看了安全部门返回的报告&#xff0c;它是针对Windows Server 2019远程桌面端口进行风险报告…这是刷存在感了吗&#xff1f;哎&#xff0c;没有办法先做调查确…

高压放大器在声波谐振电小天线收发测试系统中的应用

实验名称&#xff1a;高压放大器在声波谐振电小天线收发测试系统中的应用研究方向&#xff1a;信号传输测试目的&#xff1a;声波谐振电小天线颠覆了传统电小天线以电磁波谐振作为理论基础的天线发射和接收模式&#xff0c;它借助声波谐振实现电磁信号的辐射或接收。因为同频的…

Spring Batch 综合案例实战-项目准备

目录 案例需求 分析 项目准备 步骤1&#xff1a;新开spring-batch-example 步骤2&#xff1a;导入依赖 步骤3&#xff1a;配置文件 步骤4&#xff1a;建立employee表与employe_temp表 步骤5&#xff1a;建立基本代码体系-domain-mapper-service-controller-mapper.xml …

YMatrix + PLPython替代Spark实现车联网算法

PySpark算法开发实战 一、PySpark介绍 Spark是一种快速、通用、可扩展的大数据分析引擎&#xff0c;PySpark是Spark为Python开发者提供的API。在有非常多可视化和机器学习算法需求的应用场景&#xff0c;使用PySpark比Spark-Scala可以更好地和python中丰富的库配合使用。 使…

监听页面滚动,给页面中的节点添加动态过渡效果

效果示例图 示例代码 <template><div class"animation-wrap"><!-- header-start --><div class"animation-header">头部</div><!-- header-end --><div class"animation-subtitle animation-show">标…

工人搬砖-课后程序(JAVA基础案例教程-黑马程序员编著-第八章-课后作业)

【案例8-4】 工人搬砖 【案例介绍】 1.任务描述 在某个工地&#xff0c;需要把100块砖搬运到二楼&#xff0c;现在有工人张三和李四&#xff0c;张三每次搬运3块砖&#xff0c;每趟需要10分钟&#xff0c;李四每次搬运5块砖&#xff0c;每趟需要12分钟。本案例要求编写程序分…

收集分享一些AI工具第三期(网站篇)

感谢大家对于内容的喜欢&#xff0c;目前已经来到了AI工具分享的最后一期了&#xff0c;目前为止大部分好用的AI工具都已经介绍给大家了&#xff0c;希望大家可以喜欢。 image-to-sound-fx (https://huggingface.co/spaces/fffiloni/image-to-sound-fx) 图片转换为相对应的声音…

【unity3d】unity即时战略游戏开发2 rts engine

A 背景 经过寻找发现有unity3d的[rts engine]&#xff0c;ue4的[template 4]等rts引擎/模板。 没有搜到相关教程&#xff0c;倒是有几个老外的ue从零开发长篇教程。 rts engine有几个试玩视频&#xff0c;尝试找了一下。那就不用虚幻了。 距离[原坤争霸 genshin craft]近了…

【ChatGPT整活大赏】写论文后自动生成视频

ChatGPT国内又火了一把&#xff0c;功能很强大&#xff0c;接下来就带大家感受一下它的强大之处&#xff0c;通过ChatGPT写一篇论文并自动生成视频&#xff0c;增加内容的可读性。 话不多说&#xff0c;先上成果&#xff1a; …

MySQL管理表

在创建表时需要提前了解mysql里面的数据类型 常见的数据类型 创建表 创建表方式1&#xff1a; 格式&#xff1a; CREATE TABLE [IF NOT EXISTS] 表名( 字段1, 数据类型 [约束条件] [默认值], 字段2, 数据类型 [约束条件] [默认值], 字段3, 数据类型 [约束条件] [默认值], ………

以FGSM算法为例的对抗训练的实现(基于Pytorch)

1. 前言 深度学习虽然发展迅速,但是由于其线性的特性,受到了对抗样本的影响,很容易造成系统功能的失效。 以图像分类为例子&#xff0c;对抗样本很容易使得在测试集上精度很高的模型在对抗样本上的识别精度很低。 对抗样本指的是在合法数据上添加了特定的小的扰动&#xff0c;…

聚类算法(下):10个聚类算法的评价指标

上篇文章我们已经介绍了一些常见的聚类算法&#xff0c;下面我们将要介绍评估聚类算法的指标 1、Rand Index Rand Index&#xff08;兰德指数&#xff09;是一种衡量聚类算法性能的指标。它衡量的是聚类算法将数据点分配到聚类中的准确程度。兰德指数的范围从0到1,1的值表示两…

Python-GEE遥感云大数据分析、管理与可视化技术及多领域案例实践应用

随着航空、航天、近地空间等多个遥感平台的不断发展&#xff0c;近年来遥感技术突飞猛进。由此&#xff0c;遥感数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量也大幅增长&#xff0c;使其越来越具有大数据特征。对于相关研究而言&#xff0c;遥感大数据的出现为其提…

【阿旭机器学习实战】【37】电影推荐系统---基于矩阵分解

【阿旭机器学习实战】系列文章主要介绍机器学习的各种算法模型及其实战案例&#xff0c;欢迎点赞&#xff0c;关注共同学习交流。 电影推荐系统 目录电影推荐系统1. 问题介绍1.1推荐系统矩阵分解方法介绍1.2 数据集&#xff1a;ml-100k2. 推荐系统实现2.1 定义矩阵分解函数2.2 …

什么牌子的蓝牙耳机便宜好用?四款高品质蓝牙耳机推荐

随着时代的发展&#xff0c;蓝牙耳机的使用频率越来越高&#xff0c;不少人外出时除了带手机外&#xff0c;蓝牙耳机也成为了外出必备的数码产品之一。现在的蓝牙耳机品牌众多&#xff0c;什么牌子的蓝牙耳机便宜好用&#xff1f;下面&#xff0c;我来给大家推荐四款高品质的蓝…