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 11 PHP
PHP has encountered an Access Violation 错误的解决方法
Jan 17 PHP
php下获取客户端ip地址的函数
Mar 15 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 PHP
分享下PHP register_globals 值为on与off的理解
Sep 26 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php对象和数组相互转换的方法
May 12 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 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
当海贼王变成JOJO风
2020/03/02 日漫
PR值查询 | PageRank 查询
2006/12/20 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
js全选按钮的实现方法
2015/11/17 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
vue实现登录后页面跳转到之前页面
2018/01/07 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
你可能不知道的CORS跨域资源共享
2019/03/13 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
[48:00]EG vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.26
2018/08/29 DOTA
详解Django中Request对象的相关用法
2015/07/17 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
2018/01/04 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
数学教学随笔感言
2014/02/17 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
党员倡议书
2015/01/19 职场文书
儿子满月酒致辞
2015/07/29 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书