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图片验证码代码
Mar 27 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
PHP代码优化之成员变量获取速度对比
Feb 28 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 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
收音机指标测试方法及仪器
2021/03/01 无线电
twig模板获取全局变量的方法
2016/02/05 PHP
实现PHP搜索加分页
2016/10/12 PHP
PDO::errorCode讲解
2019/01/28 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
use jscript List Installed Software
2007/06/11 Javascript
javascript String 的扩展方法集合
2008/06/01 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
2016/01/10 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
详解Python3的TFTP文件传输
2018/06/26 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
关于Numpy数据类型对象(dtype)使用详解
2019/11/27 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
150行python代码实现贪吃蛇游戏
2020/04/24 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
python 装饰器重要在哪
2021/02/14 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
外语系毕业生自荐信范文
2013/12/16 职场文书
酒鬼酒广告词
2014/03/21 职场文书
小学生运动会报道稿
2014/09/12 职场文书
500字小学生检讨书
2015/02/19 职场文书
美容院员工规章制度
2015/08/05 职场文书
2019各种承诺书范文
2019/06/24 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python