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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 PHP
PHP递归删除目录几个代码实例
Apr 21 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
Aug 11 PHP
PHP多维数组遍历方法(2种实现方法)
Dec 10 PHP
9个比较实用的php代码片段
Mar 15 PHP
Zend Framework框架Smarty扩展实现方法
Mar 22 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
PHP支付宝当面付2.0代码
Dec 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
ThinkPHP之M方法实例详解
2014/06/20 PHP
ie 处理 gif动画 的onload 事件的一个 bug
2007/04/12 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
使用async await 封装 axios的方法
2018/07/09 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
深入探讨JavaScript的最基本部分之执行上下文
2019/02/12 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python的Django框架安装全攻略
2015/07/15 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python设置环境变量的作用整理
2020/02/17 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
化妆师职业生涯规划书
2014/02/16 职场文书
社区健康教育实施方案
2014/03/18 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
农业项目建议书
2014/08/25 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
义诊活动总结
2015/02/04 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
SpringRetry重试框架的具体使用
2021/07/25 Java/Android