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 SQL防注入代码集合
Apr 25 PHP
php 操作excel文件的方法小结
Dec 31 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
May 19 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
PHP重载基础知识回顾
Sep 10 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项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
2010/06/10 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
python网络编程学习笔记(二):socket建立网络客户端
2014/06/09 Python
介绍Python中几个常用的类方法
2015/04/08 Python
在Python中操作文件之seek()方法的使用教程
2015/05/24 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
关于python中密码加盐的学习体会小结
2019/07/15 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
2020/02/29 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
生产车间主任的个人自我鉴定
2013/10/25 职场文书
学校办公室主任职责
2013/12/27 职场文书
文员求职信
2014/07/15 职场文书
大学生创业计划书
2014/08/14 职场文书
高一军训的心得体会
2014/09/01 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
服务器SVN搭建图文安装过程
2022/06/21 Servers
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript