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调用三种数据库的方法(1)
Oct 09 PHP
php连接mysql数据库代码
Mar 10 PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 PHP
php方法调用模式与函数调用模式简例
Sep 20 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
如何用PHP实现插入排序?
Apr 10 PHP
php二维数组排序详解
Nov 06 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
Apr 08 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
利用PHP如何统计Nginx日志的User Agent数据
Mar 06 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 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
《PHP编程最快明白》第六讲:Mysql数据库操作
2010/11/01 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
jquery datepicker参数介绍和示例
2014/04/15 Javascript
JQuery 控制内容长度超出规定长度显示省略号
2014/05/23 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python如何生成网页验证码
2018/07/28 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
django rest framework使用django-filter用法
2020/07/15 Python
python request 模块详细介绍
2020/11/10 Python
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
写自荐信三大法宝
2014/01/24 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
推荐信范文大全
2015/03/27 职场文书
交通事故起诉书
2015/05/19 职场文书
病假证明模板
2015/06/19 职场文书
入党转正申请书范文
2019/05/20 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
微信小程序基础教程之echart的使用
2021/06/01 Javascript