Request数据读取(core/req.php)

Source:phpbone.com  Author:IT柏拉图
2013-11-20

    为了方便从底层实现外部的可能的不安全因素的拦截或监控,框架要求访问GET、POST、COKIE、FILE的东西直接用req 的方法获取,而不要直接用 $_GET、$_POST、$_COOKIE、$_FILES ,req类并没有托管$_SESSION、$_SERVER这两个系统变量,因为它是服务器变量,并没有在这里进行托管的必要,此外由于本框架是因MySQL数据库为核心的,并没有考虑过要兼容其它数据库,因此,都对默认的GPC变量进行了转义处理,如果有些不是插入数据库的情况,需要用stripslashes还原,下面就功能说明这个类的作用:
◆最常用操作:
(1)request('formname', default_value, $filter_type);
等同于:req::item('formname', default_value, $filter_type);
对$_REQUEST的读取,不过当cookie和get/post变量重复时,会以gp变量优先,因此cookie变量最好不要用这个读取。
$filter_type  过滤器,对数据进行整理或过滤,此功能并不抛出异常,而是对数据直接修整为用户需要的数据,如果email、ip、mobile之类,检测到不合规则,直接替换为空值。$filter_type 值列表:int, float,email,username(中文字符,数字,非危险特殊符号),qq,mobile,ip,var,keyword(中文字符,数字,非危险特殊符号)

(2)req::get('formname', default_value, $filter_type);
GET变量读取

(3)req::post('formname', default_value, $filter_type);
POST变量读取

(4)req::cookie('formname', default_value, $filter_type);
COOKIE变量读取

(5)req::$request_mdthod   用户请求方法:GET/POST

1、成员变量
public static $cookies = array();
用户的cookie

public static $forms = array();
相当于$_REQUEST

public static $gets = array();
_GET 变量

public static $posts = array();
_POST 变量

public static $request_mdthod = 'GET';
用户的请求模式 GET 或 POST(这里是类自行返回的)

public static $files = array();
文件变量,即是相当于 $_FILES

public static $url_rewrite = false;
是否启用rewrite(此项已作废)

public static $filter_filename = '/\.(php|pl|sh|js)$/i';
强制过滤不安全的上传文件名

2、成员函数

public static function init()
初始化(在bone.php中由系统调用)

public static function myeval( $phpcode )
本框架不建议用户在任何时候使用eval函数,如果必须使用,建议用 req::myeval

public static function item( $formname, $defaultvalue = '', $filter_type='')
获取request变量,对$_REQUEST的读取,不过当cookie和get/post变量重复时,会以gp变量优先,因此cookie变量最好不要用这个读取。
$filter_type  过滤器,对数据进行整理或过滤,此功能并不抛出异常,而是对数据直接修整为用户需要的数据,如果email、ip、mobile之类,检测到不合规则,直 接替换为空值。$filter_type 值列表:int, float,email,username(中文字符,数字,非危险特殊符号),qq,mobile,ip,var,keyword(中文字符,数字,非 危险特殊符号)
  
public static function get( $formname, $defaultvalue = '', $filter_type='' )
获得GET表单值   

public static function post( $formname, $defaultvalue = '', $filter_type='' )
获得POST表单值

public static function cookie( $key, $defaultvalue = '', $filter_type='' )
获得指定cookie值

public static function filter_files( &$files )
过滤文件类型(保留接口)

public static function move_upload_file( $formname, $filename, $item = '' )
移动上传的文件
$item 是用于当文件表单名为数组时,如 upfile[] 之类的情况, $item 表示数组的具体数值,后面的类似情况相同。
注意:当表单为数组时,即是name='upfile[]',req::$files的值如下面格式

  1. req::$files = array
  2.     'upfile' => array
  3.              'tmp_name' => array(0 => 'xxx', 1 => 'xxx'), 
  4.              'type' => array(0 => 'xxx', 1 => 'xxx'), 
  5.              ... 
  6.     ) 
  7. ); 

public static function get_tmp_name( $formname, $defaultvalue = '', $item = '' )
获得指定临时文件名值
 
public static function get_shortname( $formname, $item = '' )
获得文件的扩展名

public static function get_file_info( $formname, $item = '' )
获得指定文件表单的文件详细信息
   
public static function is_upload_file( $formname,  $item = '' )
判断是否存在上传的文件   
   
public static function check_subfix($formname, $subfix = 'csv', $item= '')
检查文件后缀是否为指定值  
   
public static function assign_values(&$dfarr, &$datas, $method='get')
把指定数据转化为路由数据

   
 

分享到: