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 网页游戏开发入门教程一(webgame+design)
Oct 26 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
php模拟ping命令(php exec函数的使用方法)
Oct 25 PHP
PHP程序员基本要求和必备技能
May 09 PHP
composer.lock文件的作用
Feb 03 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
浅析php如何实现App常用的秒发功能
Aug 03 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
php实现留言板功能(会话控制)
May 23 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP中SESSION过期设置
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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
vue elementUI使用tabs与导航栏联动
2019/06/21 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
Python深入学习之上下文管理器
2014/08/31 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
transform python环境快速配置方法
2018/09/27 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
python实现简易淘宝购物
2019/11/22 Python
Python2与Python3的区别点整理
2019/12/12 Python
如何查看python关键字
2021/01/17 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
劳动争议和解协议书范本
2014/11/20 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS