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实现小型站点广告管理
Oct 09 PHP
PHP中读写文件实现代码
Oct 20 PHP
解析php中memcache的应用
Jun 18 PHP
深入解析php中的foreach函数
Aug 31 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
Nov 08 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
Jan 07 PHP
PHP使用星号隐藏用户名,手机和邮箱的实现方法
Sep 22 PHP
php文件上传、下载和删除示例
Aug 28 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
Dec 02 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 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
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
浅析PHP递归函数返回值使用方法
2013/02/18 PHP
一个简单的php路由类
2016/05/29 PHP
Yii2下点击验证码的切换实例代码
2017/03/14 PHP
PHP使用CURL实现下载文件功能示例
2019/06/03 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
js 使用form表单select类实现级联菜单效果
2012/12/19 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
angularJs中datatable实现代码
2017/06/03 Javascript
node实现定时发送邮件的示例代码
2017/08/26 Javascript
解读ES6中class关键字
2017/11/20 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
将jquery.qqFace.js表情转换成微信的字符码
2017/12/01 jQuery
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
解决vue-router 二级导航默认选中某一选项的问题
2019/11/01 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python使用KNN算法手写体识别
2018/02/01 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
python画折线图的程序
2018/07/26 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
技校毕业生的自我评价
2013/12/27 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
2015年商场工作总结
2015/04/27 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书