php优秀框架codeigniter学习系列——CI_Input类学习
这篇文章主要介绍CI核心框架工具类CI_Input。
根据CI文档自己的定义,该类用来:
- 提前处理全局变量,以保证安全;
- 提供一些帮助函数用来处理输入数据。
以下选取类中的重点方法进行说明。
__construct()
在构造函数,根据定义,用来决定是否开启全局的XSS处理和是否允许$_GET数组。
调用函数$this->_sanitize_globals();来清理,$_GET,$_POST,$COOKIE,$_SERVER['PHP_SELF']中的数据。主要用来检测键名和键值是否存在非法字符,以防止XSS攻击。
同时会调取安全类CI_Security来进行CRSF的防御。
// CSRF Protection check
if ($this->_enable_csrf === TRUE && ! is_cli())
{
$this->security->csrf_verify();
}
读取输入变量
主要的方法有:
- $this->input->post()
- $this->input->get()
- $this->input->cookie()
- $this->input->server()
同时你也可以利用php://input或者$this->input->raw_input_stream;来获取原始的数据。
其它工具函数
例如:
- is_cli_request()
- is_ajax_request()
- get_request_header()
等等。
php优秀框架codeigniter学习系列——CI_Input类学习的更多相关文章
- php优秀框架codeigniter学习系列——CI_Security类学习
这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造 ...
- php优秀框架codeigniter学习系列——CI_Router类学习
这篇文章主要介绍CI核心框架工具类CI_Router. 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function. 详 ...
- php优秀框架codeigniter学习系列——CI_URI类学习
这篇文章主要介绍CI核心框架工具类CI_URI. 该类主要用来解析uri和决定路由的.关于URI和URL的关系请参考这位朋友的文章.简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路 ...
- php优秀框架codeigniter学习系列——CI_Lang类学习
这篇文章主要介绍CI核心框架工具类CI_Lang. 根据CI文档自己的定义,该类用来: 提供相关的函数,用于检索语言文件和文本行,以便国际化. 以下选取类中的重点方法进行说明. __construct ...
- php优秀框架codeigniter学习系列——CodeIgniter.php概览
CodeIgniter.php是CI框架的核心文件.它在前端控制器index.php之后运行,加载各类基础组件,执行请求.文件执行完成后,这次请求也就结束了.所以,该文只能对CodeIgniter.p ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
- php优秀框架codeigniter学习系列——CI_Loader类分析
这是一个加载视图和文件的类. __construct() 设置视图文件的路径,和获取输出缓冲级别. initialize() 该方法只会被CI_Controller调用一次,会调用 $this-> ...
- php优秀框架codeigniter学习系列——CI_Output类的学习
这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...
随机推荐
- git pull和本地文件冲突
在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息: error: Your local changes to 'c/environ.c' would be overwritten b ...
- 【改】利用ALSA库进行音频重采样
转自:http://www.voidcn.com/article/p-snamarwr-p.html 一.ALSA介绍: 1.简介: 高级Linux声音体系(英语:Advanced LinuxSoun ...
- Amazon 刷单的几种方式及安全性?
刷单需要注意的几个点 1.通过关键词,找产品.不要直接通过连接或者ASIN购买,容易被亚马逊监控. 2.添加购物车时最好添加同类产品表现好的三个到购物车,关联同类产品.在页面多浏览一下,多打开几个同类 ...
- css实现垂直水平居中的方法(个数不限)?
方法一:使用绝对定位 大家都知道margin:0 auto;能够实现水平居中,但却不知道margin:0 auto;也是可以实现垂直居中的: 给居中元素添加如下样式: .Absolute-Center ...
- FPM四:用OVP做查询跳转到明细
前面做了查询的UIBB配置,在这边可以直接复用,查询的feeder class也就自动复用了. 1.给查询的feeder class添加接口,继续继承form的接口. 2.挨个实现每个方法,即使是用不 ...
- vue-cli中怎么样使用less
1.安装安装less依赖,npm install less less-loader --save 2.修改配置文件, 在build/webpack.base.conf.js文件的module.expo ...
- D3DX 9.9 LEARNERNOTO
DirectX 9.0 3D游戏开发编程基础一.开发工具:vs2013 or VC++2005 Direct3D API http://msdn.microsoft.com/directx/sdk D ...
- QVector常见使用方法
仅在此简单介绍QVector的一些常见函数,有兴趣的可以查下QT,在QT中介绍的很详细 构造函数,QVector的构造函数很多样化,常见的有 QVector() 无参的构造函数 QVector(int ...
- docker搭建elk
docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /opt/data/elk-data:/var/lib/elasticsearch - ...
- aop表达式
任意公共方法的执行: execution(public * *(..)) 任何一个以“set”开始的方法的执行: execution(* set*(..)) AccountService 接口的任意方 ...