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 相关文章推荐
人大复印资料处理程序_补充篇
Oct 09 PHP
几个学习PHP的网址
Nov 25 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
php实现最简单的MVC框架实例教程
Sep 08 PHP
跟我学Laravel之路由
Oct 15 PHP
CentOS安装php v8js教程
Feb 26 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
详解php 使用Callable Closure强制指定回调类型
Oct 26 PHP
PHP PDOStatement::bindParam讲解
Jan 30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
Thinkphp5.0 框架Model模型简单用法分析
Oct 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
DOTA2 1月28日更新:监管系统降临刀塔世界
2021/01/28 DOTA
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
javascript 动态调整图片尺寸实现代码
2009/12/28 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
Vue数据双向绑定原理及简单实现方法
2018/05/18 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
深入理解Django的自定义过滤器
2017/10/17 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python实现桌面托盘气泡提示
2019/07/29 Python
浅谈Python 参数与变量
2020/06/20 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
用pushplus+python监控亚马逊到货动态推送微信
2021/01/29 Python
华为C++笔试题
2014/08/05 面试题
市场部管理制度
2014/02/02 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书