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 XML操作类DOMDocument
Dec 16 PHP
php操作excel文件 基于phpexcel
Jul 02 PHP
PHP中break及continue两个流程控制指令区别分析
Apr 18 PHP
php cc攻击代码与防范方法
Oct 18 PHP
解析php取整的几种方式
Jun 25 PHP
YII实现分页的方法
Jul 09 PHP
CodeIgniter模板引擎使用实例
Jul 15 PHP
PHP MSSQL 分页实例
Apr 13 PHP
制作个性化的WordPress登陆界面的实例教程
May 21 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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
消息持续发送的完整例子
2006/10/09 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
使用swoole扩展php websocket示例
2014/02/13 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
举例简介AngularJS的内部语言环境
2015/06/17 Javascript
javascript实现表单验证
2016/01/29 Javascript
javascript循环链表之约瑟夫环的实现方法
2017/01/16 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
JS使用正则表达式实现常用的表单验证功能分析
2020/04/30 Javascript
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
详解Python自建logging模块
2018/01/29 Python
解析python的局部变量和全局变量
2019/08/15 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
出纳会计岗位职责
2014/03/12 职场文书
工作会议主持词
2014/03/17 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
使用python创建股票的时间序列可视化分析
2022/03/03 Python