<?php 
/************************* 
说明: 
判断传递的变量中是否含有非法字符 
如$_POST、$_GET 
功能: 
防注入 
*************************
*/ 

//要过滤的非法字符 
$ArrFiltrate=array("'",";","union"); 
//出错后要跳转的url,不填则默认前一页 
$StrGoUrl=""
//是否存在数组中的值 
function FunStringExist($StrFiltrate,$ArrFiltrate){ 
foreach ($ArrFiltrate as $key=>$value){ 
   
if (eregi($value,$StrFiltrate)){ 
       
return true
   } 
 } 
return false


//合并$_POST 和 $_GET 
if(function_exists(array_merge)){ 
   
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS); 
}
else
   
foreach($HTTP_POST_VARS as $key=>$value){ 
       
$ArrPostAndGet[]=$value
   } 
   
foreach($HTTP_GET_VARS as $key=>$value){ 
       
$ArrPostAndGet[]=$value
   } 


//验证开始 
foreach($ArrPostAndGet as $key=>$value){ 
   
if (FunStringExist($value,$ArrFiltrate)){ 
       
echo "<script language=\"javascript\">alert(\"非法字符\");</script>"
       
if (empty($StrGoUrl)){ 
       
echo "<script language=\"javascript\">history.go(-1);</script>"
       }
else
       
echo "<script language=\"javascript\">window.location=\"".$StrGoUrl."\";</script>"
       } 
       
exit
   } 

?>