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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
推荐个功能齐全的发送PHP邮件类
Jan 03 PHP
php MySQL与分页效率
Jun 04 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
php 启动时报错的简单解决方法
Jan 27 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
PHP连接MySQL数据的操作要点
Mar 20 PHP
深入理解php printf() 输出格式化的字符串
May 23 PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
php 使用expat方式解析xml文件操作示例
Nov 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的一些基础知识分享
2011/07/27 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
利用Dojo和JSON建立无限级AJAX动态加载的功能模块树
2007/03/24 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
python使用Tesseract库识别验证
2018/03/21 Python
python2.7实现邮件发送功能
2018/12/12 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
Python实现疫情地图可视化
2021/02/05 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
外贸员简历中的自我评价
2014/03/04 职场文书
颐和园的导游词
2015/01/30 职场文书
2016猴年春节问候语
2015/11/11 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
详解MySQL中的pid与socket
2021/06/15 MySQL
SQL Server中搜索特定的对象
2022/05/25 SQL Server