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 相关文章推荐
一个显示天气预报的程序
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Jan 02 PHP
坏狼的PHP学习教程之第1天
Jun 15 PHP
解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
Jun 26 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
8个必备的PHP功能实例代码
Oct 27 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
PHP生成图片验证码功能示例
Jan 12 PHP
PHP实现的随机红包算法示例
Aug 14 PHP
tp5.1 实现setInc字段自动加1
Oct 18 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
php通过会话控制实现身份验证实例
2016/10/18 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
一段利用WSH修改和查看IP配置的代码
2008/05/11 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
javascript的push使用指南
2014/12/05 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
Node调用Java的示例代码
2017/09/20 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
jQuery模拟12306城市选择框功能简单实现方法示例
2018/08/13 jQuery
js实现导航跟随效果
2018/11/17 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
js实现蒙版效果
2020/01/11 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
Python3写入文件常用方法实例分析
2015/05/22 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
用matplotlib画等高线图详解
2017/12/14 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
2020/05/28 Python
python利用 keyboard 库记录键盘事件
2020/10/16 Python
房地产销售员的自我评价分享
2013/12/04 职场文书
毕业生实习证明
2014/09/19 职场文书
批评与自我批评总结
2014/10/17 职场文书
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis