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中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
LotusPhp笔记之:Logger组件的使用方法
May 06 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
Apr 02 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
PHP7新特性
Mar 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
php at(@)符号的用法简介
2009/07/11 PHP
PHP反射API示例分享
2016/10/08 PHP
自动生成文章摘要的代码[JavaScript 版本]
2007/03/20 Javascript
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
2019/08/06 Python
Pycharm Git 设置方法
2020/09/15 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
采购文员岗位职责
2013/11/20 职场文书
我为自己代言广告词
2014/03/18 职场文书
公司聘任书模板
2014/03/29 职场文书
网站文案策划岗位职责
2015/04/14 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL
用Java实现简单计算器功能
2021/07/21 Java/Android
python 闭包函数详细介绍
2022/04/19 Python
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers