帝国CMS变量过滤函数集合

//htmlspecialchars处理
function ehtmlspecialchars($val,$flags=ENT_COMPAT){
   global $ecms_config;
   if(PHP_VERSION>='5.4.0')
   {
      if($ecms_config['sets']['pagechar']=='utf-8')
      {
         $char='UTF-8';
      }
      else
      {
         $char='ISO-8859-1';
      }
      $val=htmlspecialchars($val,$flags,$char);
   }
   else
   {
      $val=htmlspecialchars($val,$flags);
   }
   return $val;
}

//addslashes处理
function eaddslashes($val,$ckmq=1){
   if($ckmq==1&&MAGIC_QUOTES_GPC)
   {
      return $val;
   }
   $val=addslashes($val);
   return $val;
}

//addslashes处理
function eaddslashes2($val,$ckmq=1){
   if($ckmq==1&&MAGIC_QUOTES_GPC)
   {
      return addslashes($val);
   }
   $val=addslashes(addslashes($val));
   return $val;
}

//stripSlashes处理
function estripSlashes($val,$ckmq=1){
   if($ckmq==1&&!MAGIC_QUOTES_GPC)
   {
      return $val;
   }
   $val=stripSlashes($val);
   return $val;
}

//stripSlashes处理
function estripSlashes2($val,$ckmq=1){
   if($ckmq==1&&!MAGIC_QUOTES_GPC)
   {
      return stripSlashes($val);
   }
   $val=stripSlashes(stripSlashes($val));
   return $val;
}

//变量正数型处理
function RepPIntvar($val){
   $val=intval($val);
   if($val<0)
   {
      $val=0;
   }
   return $val;
}

//参数处理函数
function RepPostVar($val){
   if($val!=addslashes($val))
   {
      exit();
   }
   CkPostStrChar($val);
   $val=str_replace("%","",$val);
   $val=str_replace(" ","",$val);
   $val=str_replace("`","",$val);
   $val=str_replace("\t","",$val);
   $val=str_replace("%20","",$val);
   $val=str_replace("%27","",$val);
   $val=str_replace("*","",$val);
   $val=str_replace("'","",$val);
   $val=str_replace("\"","",$val);
   $val=str_replace("/","",$val);
   $val=str_replace(";","",$val);
   $val=str_replace("#","",$val);
   $val=str_replace("--","",$val);
   $val=RepPostStr($val,1);
   $val=addslashes($val);
   //FireWall
   FWClearGetText($val);
   return $val;
}

//参数处理函数2
function RepPostVar2($val){
   if($val!=addslashes($val))
   {
      exit();
   }
   CkPostStrChar($val);
   $val=str_replace("%","",$val);
   $val=str_replace("`","",$val);
   $val=str_replace("\t","",$val);
   $val=str_replace("%20","",$val);
   $val=str_replace("%27","",$val);
   $val=str_replace("*","",$val);
   $val=str_replace("'","",$val);
   $val=str_replace("\"","",$val);
   $val=str_replace("/","",$val);
   $val=str_replace(";","",$val);
   $val=str_replace("#","",$val);
   $val=str_replace("--","",$val);
   $val=RepPostStr($val,1);
   $val=addslashes($val);
   //FireWall
   FWClearGetText($val);
   return $val;
}

//参数处理函数3
function RepPostVar3($val){
   if($val!=addslashes($val))
   {
      exit();
   }
   CkPostStrChar($val);
   $val=str_replace("%","",$val);
   $val=str_replace("`","",$val);
   $val=str_replace("\t","",$val);
   $val=str_replace("%20","",$val);
   $val=str_replace("%27","",$val);
   $val=str_replace("*","",$val);
   $val=str_replace("'","",$val);
   $val=str_replace("\"","",$val);
   //$val=str_replace("/","",$val);
   $val=str_replace(";","",$val);
   $val=str_replace("#","",$val);
   $val=str_replace("--","",$val);
   $val=RepPostStr($val,1);
   $val=addslashes($val);
   //FireWall
   FWClearGetText($val);
   return $val;
}

//验证编码字符
function CkPostStrCharYh($val){
   if($val!=addslashes($val))
   {
      exit();
   }
   return $val;
}

//处理提交字符
function RepPostStr($val,$ecms=0,$phck=0){
   if($phck==1)
   {
      CkPostStrCharYh($val);
   }
   $val=ehtmlspecialchars($val,ENT_QUOTES);
   if($ecms==0)
   {
      CkPostStrChar($val);
      $val=AddAddsData($val);
      //FireWall
      FWClearGetText($val);
   }
   return $val;
}

//处理提交字符2
function RepPostStr2($val,$phck=0){
   if($phck==1)
   {
      CkPostStrCharYh($val);
   }
   CkPostStrChar($val);
   $val=AddAddsData($val);
   //FireWall
   FWClearGetText($val);
   return $val;
}

//处理地址
function RepPostStrUrl($val,$phck=0){
   $val=str_replace('&amp;','&',RepPostStr($val,1,$phck));
   return $val;
}

//发现在搜索处理关键字的方法采用的是RepPostVar2函数
function SearchDoKeyboardVar($keyboard){
   $keyboard=str_replace('  ','',$keyboard);
   $keyboard=RepPostVar2(trim($keyboard));
   return $keyboard;
}

总结为(以下总结来自网络): 

(1)、数字型变量可以用(int)或intval函数处理,例子:

$page=(int)$_GET['page'];

$page=intval($_GET['page']);

(2)、带小数点的数字型变量可以用(float)或floatval函数处理,例子:

$money=(float)$money;

$money=floatval($money);

(3)、字符型处理:

不带空格或其他特殊符号的,用

RepPostVar()函数过滤

带空格或其他特殊符号的用:

RepPostVar2()函数过滤

写入数据库的用:

RepPostStr()函数过滤


支付宝扫码打赏 微信扫码打赏

如果本文对你有帮助,欢迎打赏本站

喜欢 ()or分享
    匿名评论
  • 评论
人参与,条评论