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()

等等。

原文地址:https://www.cnblogs.com/Andres/p/9575333.html

时间: 2024-08-03 11:58:28

php优秀框架codeigniter学习系列——CI_Input类学习的相关文章

php优秀框架codeigniter学习系列——安装,配置

下载 可在官网下载,我使用的是CodeIgniter-3.1.7. 目录 打开程序目录,可看到目录结构. 我这里做一点小的修改,新建了一个 index 目录,将 index.php 和一些静态文件放入这个目录里.这样做的主要目的是只将入口文件 index.php 暴露在网站根目录下,而将程序的网站业务文件目录 application 和系统文件目录 system 等其他的文件放在网站根目录外,避免用户可以直接访问到. application --  网站业务文件目录.里面包含有缓存(cache)

《Python爬虫学习系列教程》学习笔记

转自:http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己实际写的一些小爬虫,在这里跟大家一同分享,希望对Python爬虫感兴趣的童鞋有帮助,如果有机会期待与大家的交流. 一.Python入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫

[jQuery学习系列五 ]5-Jquery学习五-表单验证

前言最近总是有一个感觉,虽然这些东西都自己学习并一个案例一个案例的去验证过了.但是总觉得不写成博客记录下来这些都不是自己的东西(心理作用,哈哈).所以每当学习或者复习相关的知识我都喜欢记录下来,下面开始到jQuery的表单验证.这里的表单验证都是最简单最基础的方式去完成,当然jQuery还有一些比较好的验证框架,这里就不提及了. 一,字段验证:1.1 字段非空 <form action="" method="post" id ="myform&quo

[jQuery学习系列二 ]2-JQuery学习二-数组操作

前言 上一篇内容 已经对于Jquery 有了一些认识, 包括Jquery的选择器和DOM对象, 那么这一篇继续来看下Jquery中很实用的Jquery对于数组的操作. Jquery中对数组的操作大致有以下几种形式:each(迭代), map(转换), grep(筛选), 合并等. 1,迭代(each)jQuery.each( object, callback ) 返回值:Object说明:通用例遍方法,可用于例遍对象和数组.注意: 传入的第一个参数可以是数组或者对象.如果数组,则遍历数组中的每一

[jQuery学习系列四 ]4-Jquery学习四-事件操作

前言:今天看知乎偶然看到中国有哪些类似于TED的节目, 回答中的一些推荐我给记录下来了, 顺便也在这里贴一下: 一席 云集 听道 推酷 青年中国说 SELF格致论道 参考:http://www.365mini.com/page/tag/jquery-event-methods 1,readyready()函数用于在当前文档结构载入完毕后立即执行指定的函数.该函数的作用相当于window.onload事件. 2,blindbind()函数用于为每个匹配元素的一个或多个事件绑定事件处理函数.举例:

hadoop入门学习系列之六hadoop学习之sqoop安装

1.下载安装包及解压 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 2.配置环境变量和配置文件 cd 到 sqoop解压目录 cp conf/sqoop-env-template.sh /conf/sqoop-env.sh 在sqoop-env.sh中添加如下代码: export HADOOP_COMMON_HOME=/home/hadoop/opt/hadoop-2.6.0 export HADOOP_MAPRED_HOME=/hom

ExtJS学习----------Ext.DomHelper类学习(实例)

具体实例(实例结果在程序中) Ext.onReady(function(){ //准备工作 Ext.create('Ext.panel.Panel',{ title:'DomHelper-元素生成器的使用', width:'90%' , height:400 , renderTo:Ext.getBody(), html:'<div id=d1>我是d1</div>' }); //DomHelper //1: createHtml或markup方法 //配置项说明:四个 //tag

[jQuery学习系列三 ]3-JQuery学习二-字典操作

前言:如果看过了第一篇和第二篇, 相信大家会对jQuery有个初步的认识了, 对于jQuery的选择器和数组的操作都已经很熟悉了, 这一篇就单独罗列jQuery中字典的操作相关的内容. 1. 数组中添加map var arr = []; var key = 'Jeremy'; var value = '!!!!' arr.push({ 'key': key, 'value': value, }); document.write("key: " + arr[0]['key'] + &qu

ABP架构学习系列

ABP实践学习系列 ABP Zero 本地化语言的初始化和扩展 ABP Zero 导航菜单之角色权限 ABP Zero示例项目问题总结 ABP后台服务之作业调度Quartz.NET ABP架构学习系列 ABP架构学习系列一 整体项目结构及目录 ABP架构学习系列二:ABP中配置的注册和初始化 ABP架构学习系列三:手工搭建ABP框架 IOC基础学习系列 .Net IOC框架入门之一 Unity .Net IOC框架入门之二 CastleWindsor 各大主流.Net的IOC框架性能测试比较(转