2、控制器命令规则:

大驼峰控制器名+Controller.php

3、控制器代码结构生成:

php artisan make:controller 控制器名

例如:使用artisan命令创建TestController.php文件。

命令:#php artisan make:controller TestController

4、控制器路由:

路由设置格式基本相同,只是将匿名函数换成控制器类名@方法名

定义格式如下:

Route::请求方法(路由表达式,控制器@方法)

例如:在Test控制器中创建test方法,其中输出phpinfo信息:

//web.php
Route::get('/home/test/test1','TestController@test1');

//TestController.php
public function test1(){
        return phpinfo();
}

5、控制分目录管理:

接收用户输入的类:FacadesInput

Facades:门面的意思。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类当是可以调用类中的方法。

6、获取用户输入:

Input::get('参数的名字','如果参数没有被传递使用该默认值')
Input::all():获取所有的用户的输入
Input::get(''):获取单个的用户的输入
Input::only([]):获取指定几个用户的输入
Input::except([]):获取指定几个用户的输入以外的所以的参数
Input::has('name'):判断某个输入的参数是否存在

rce漏洞和cve漏洞_漏洞英文bug_laravel漏洞

DB类操作数据库

1、数据表的创建与配置:

按照MVC的架构,对数据的操作应该放在Model中完成,但如果不使用Model,我么也可以用laravel框架提供的DB类操作数据库。而且,对于某些极其复杂的sql,用Mode已经很难完成,需要开发者自己手写sql语句,使用DB类去执行原生sql。

laravel中DB类的基本用法:DB::table(‘table’)获取操作tableName表的实例。

建立数据库:

建数据库的方式:
1、sql语句
2、图形界面

.env文件

漏洞英文bug_rce漏洞和cve漏洞_laravel漏洞

也可以在config目录下面的database.php文件里面配置,使用env函数,表示先从env文件里面获取,如果获取成功则使用,如果获取失败,则使用env函数的第二个参数。

rce漏洞和cve漏洞_laravel漏洞_漏洞英文bug

控制器要引入DB的门面才能数据库操作:

//前提app.php文件中有DB这个别名,可以直接use
use DB

2、增加信息:

对数据库中的某个表增加数据主要有两个函数可以实现,分别是insert()和insertGetId()

insert():可以同时添加一条或多条,返回值是布尔类型

insertGetId():只能添加一条数据,返回 自增的id

注意:DB::table(‘无前缀的表名’)

3、修改信息:

数据修改可以使用update()、increment()和decrement()函数来实现。

Update表示可以修改整个记录中的全部字段;

Increment和decremet表示修改数字字段的数值(递增或者递减),典型的应用:记录登录次数、积分的增加;

案例:把name=王大骚的名称,改名为‘王大少’

->where()->update([])

Where 语法:
->where(字段,运算符,值) 如果运算符为`=`,则第二个参数可以不写

//可加where条件
DB::table('test')->increment('age'); //每次+1
DB::table('test')->increment('age',5); //每次+5
DB::table('test')->decrement('age'); //每次-1
DB::table('test')->decrement('age',5); //每次-5

4、查询数据:

eg:获取test表中所有的数据

DB::table('test')->get(); //相当于select * from test;
//返回值是一个集合对象

eg:获取id>3的数据

->where->get();

注意:where方法之后继续调用where方法;
-> where() -> where() -> where() //and 关系语法
-> where() -> orWhere() -> orWhere() //or 关系语法

->first()取第一行记录,返回值是一个对象

->value()取出单个指定字段的值

->select(‘name’,’email’)->get();取出多个字段的值

->orderBy(‘age’,’desc’)->get();排序操作:按年龄降序,升序是:asc

->limit(3)->offset(3)->get() 分页操作:limit:表示限制输出的条数 offset:从什么地方开始

5、删除操作:

在删除中,有两种方式:物理删除(本质就是删除)、逻辑删除(本质是修改)

逻辑删除(本质是修改):用一个字段表示字段不显示,假删除

\了解,不用
delete() 表示删除记录
truncate() 表示清空整个数据表

6、执行任意的SQL语句(了解):

(1):执行任意的insert update delete语句【影响记录的语句使用statement语法】

DB::statement(“insert into test values(null,”)”);

(2):执行任意的select语句【不影响记录的语句使用select语法】

$res = DB:select(“select * from test”);

rce漏洞和cve漏洞_laravel漏洞_漏洞英文bug

小小总结:

有个大佬说过:做WEB安全要不你就没日没夜的挖洞,要不你就要比开发更懂WEB开发。而现在我们正在了解WEB的路上,学习完Laravel框架,下期我们将带来Laravel框架在开发中存在漏洞。

本网站每日更新互联网创业教程,一年会员只需98,全站资源免费下载点击查看会员权益

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注