日期:2014-05-17  浏览次数:20774 次

php5.3不支持eregi()函数,用preg_match怎么转换?求大神指教!
function inject_check($sql_str) {
  $check=eregi('select|insert|update|delete|\'|\\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str); // 进行过滤
  if($check){
  echo "输入非法注入内容!";
  exit();
  }else{
  return $sql_str;
  }
}
今天上网找了段防止SQL注入的方法,但是运行后发现eregi()这个函数在5.3版本已经不能使用了,提示了使用过期的函数,所以我就上网找资料,网上评论也是说现在是用preg_match()函数代替eregi()函数,但是我把函数名改成preg_match又不行,似乎参数不对,麻烦知道的教下我,正确的preg_match应该怎么改,谢谢!

------解决方案--------------------
PHP code

preg_match('/select|insert|update|delete|\'|\\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/i',$sql_str);

------解决方案--------------------
PHP code

function inject_check($sql_str) {
    $check=preg_match('/select|insert|update|delete|\'|\\*|\*|\.\.\/|\.\/|union|into|load_file|outfile/i',$sql_str); // 进行过滤
    if($check){
        echo "输入非法注入内容!";
        exit();
    }else{
        return $sql_str;
    }
}