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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
使用PHP获取当前url路径的函数以及服务器变量
Jun 29 PHP
php获取网卡的MAC地址支持WIN/LINUX系统
Apr 30 PHP
destoon找回管理员密码的方法
Jun 21 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
PHP strip_tags保留多个HTML标签的方法
May 22 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
Oct 12 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
PHP简洁函数小结
2011/08/12 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
javascript 写类方式之八
2009/07/05 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
jQuery使用方法
2017/02/04 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
2017/09/29 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
postman+json+springmvc测试批量添加实例
2018/03/31 Javascript
JavaScript 中的12种循环遍历方法【总结】
2018/05/31 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
小程序采集录音并上传到后台
2019/11/22 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
Python简单过滤字母和数字的方法小结
2019/01/09 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
如何基于python操作json文件获取内容
2019/12/24 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
管理标语大全
2014/06/24 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
妈妈别哭观后感
2015/06/08 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
Pytorch 如何实现常用正则化
2021/05/27 Python
MySQL连接控制插件介绍
2021/09/25 MySQL