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应该怎么改,谢谢!

解决方案 »

  1.   


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

  2.   


    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;
        }
    }
      

  3.   

    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;
      }
    }
    试试这段代码吧