Discuz函数之daddslashes

来源:互联网 发布:提取微信网页数据库 编辑:程序博客网 时间:2024/05/01 07:41
echo PHP_VERSION;//PHP版本
5.2.17

--修改自Discuz----
magic_quotes_gpc不管开启与否都正常转义单引号
如果开启了就不运行daddslashes这个函数,也就是没有addslashes转义
如果没有开启就把$_GET,$_POST之类的全局提交数据进行转义,防止SQL的运行不正确。

//转义单引号函数
function daddslashes($string) {
if(is_array($string)) {
 foreach($string as $key => $val) {
  $string[$key] =daddslashes($val);
  }
 }else{
  $string =addslashes($string);
  }
 return $string;
}
//如果在php.ini中 magic_quotes_gpc = Off
if(!get_magic_quotes_gpc()){
unset($GLOBALS, $_ENV, $HTTP_GET_VARS, $HTTP_POST_VARS,$HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $HTTP_ENV_VARS);
$_GET  =daddslashes($_GET);
$_POST  =daddslashes($_POST);
$_COOKIE    =daddslashes($_COOKIE);
$_SERVER    =daddslashes($_SERVER);
$_FILES  =daddslashes($_FILES);
$_REQUEST = daddslashes($_REQUEST);
}


//PHP获取客户端IP地址
function _get_client_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_CLIENT_IP']) &&preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$_SERVER['HTTP_CLIENT_IP'])) {
 $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) ANDpreg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s',$_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
 foreach ($matches[0] AS $xip) {
  if(!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
   $ip =$xip;
   break;
   }
  }
 }
 return $ip;
}

0 0
原创粉丝点击