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设计模式 Visitor 访问者模式
Jun 28 PHP
php下载文件的代码示例
Jun 29 PHP
php随机输出名人名言的代码
Oct 07 PHP
PHP编程函数安全篇
Jan 08 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php发送http请求的常用方法分析
Nov 08 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
phpstudy2020搭建站点的实现示例
Oct 30 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中static关键字原理的学习研究分析
2011/07/18 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
jQuery EasyUI API 中文文档 - Spinner微调器使用
2011/10/21 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
Js制作点击输入框时默认文字消失的效果
2015/09/05 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
express express-session的使用小结
2018/12/12 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
vue实现给div绑定keyup的enter事件
2020/07/31 Javascript
python查找目录下指定扩展名的文件实例
2015/04/01 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
django ajax json的实例代码
2018/05/29 Python
tensorflow实现简单逻辑回归
2018/09/07 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
python中退出多层循环的方法
2018/11/27 Python
python word转pdf代码实例
2019/08/16 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
新加坡交友网站:be2新加坡
2019/04/10 全球购物
教师绩效工资方案
2014/02/01 职场文书
商场中秋节活动方案
2014/02/07 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
大学生操行评语大全
2014/12/31 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
复试通知单模板
2015/04/24 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
python爬虫之利用selenium模块自动登录CSDN
2021/04/22 Python
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
Python中tqdm的使用和例子
2022/09/23 Python