laravel框架中表单请求类型和CSRF防护实例分析


Posted in PHP onNovember 23, 2019

本文实例讲述了laravel框架中表单请求类型和CSRF防护。分享给大家供大家参考,具体如下:

laravel中为我们提供了绑定不同http请求类型的函数。

Route::get('/test', function () {});
Route::post('/test', function () {});
Route::put('/test', function () {});
Route::patch('/test', function () {});
Route::delete('/test', function () {});
Route::options('/test', function () {});

但有些时候,我们通过创建资源控制器,里面的 update() 方法绑定的是 PUT 类型的http请求。

这就需要我们通过表单提交模拟PUT请求。我们可以自已添加一个 _method 的隐藏字段,值为 PUT。

<form action="{{ route('test') }}" method="post">
  <input type="hidden" name="_method" value="PUT">
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

也可以使用laravel为我们提供的 method_field() 方法。

<form action="{{ route('test') }}" method="post">
  {{ method_field('PUT') }}
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

laravel默认会对每个提交请求,进行csrf令牌的验证。为了通过验证,需要在表单中添加 _token 隐藏字段。

<form action="{{ route('test') }}" method="post">
  <input type="hidden" name="_token" value="{{ csrf_token() }}">
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

或者使用 csrf_field() 方法。

<form action="{{ route('test') }}" method="post">
  {{ csrf_field() }}
  用户名:<input type="text" name="name">
  密码:<input type="password" name="pwd">
  <input type="submit" value="提交">
</form>

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php目录管理函数小结
Sep 10 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
php判断两个浮点数是否相等的方法
Mar 14 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP不使用内置函数实现字符串转整型的方法示例
Jul 03 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
php-fpm添加service服务的例子
Apr 27 PHP
Yii框架函数简单用法分析
Sep 09 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 #PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 #PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 #PHP
laravel框架创建授权策略实例分析
Nov 22 #PHP
laravel框架语言包拓展实现方法分析
Nov 22 #PHP
laravel框架邮箱认证实现方法详解
Nov 22 #PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 #PHP
You might like
php下将XML转换为数组
2010/01/01 PHP
PHP中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
分享下PHP register_globals 值为on与off的理解
2013/09/26 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
微信小程序  audio音频播放详解及实例
2016/11/02 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
简介Python中用于处理字符串的center()方法
2015/05/18 Python
浅谈python中的占位符
2017/11/09 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
Python 控制终端输出文字的实例
2019/07/12 Python
opencv python图像梯度实例详解
2020/02/04 Python
scrapy头部修改的方法详解
2020/12/06 Python
用python读取xlsx文件
2020/12/17 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
园林毕业生自我鉴定范文
2013/12/29 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
军训口号
2014/06/13 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle