php对提交数据的验证

<?php
   //security.php
/**
 * @author zhengwei
 * @copyright 2007
 */

/* 
函数名称:inject_check() 
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全 
参  数:$sql_str: 提交的变量 
返 回 值:返回检测结果,ture or false 
函数作者:heiyeluren 
*/ 
function inject_check($sql_str) {  
  return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str);    // 进行过滤  
}  
 
/* 
函数名称:verify_id() 
函数作用:校验提交的ID类值是否合法 
参  数:$id: 提交的ID值 
返 回 值:返回处理后的ID 
函数作者:heiyeluren 
*/ 
function verify_id($id=null) {  
  if (!$id) { exit('没有提交参数!'); }    // 是否为空判断  
  elseif (inject_check($id)) { exit('提交的参数非法!'); }    // 注射判断  
  elseif (!is_numeric($id)) { exit('提交的参数非法!'); }    // 数字判断  
  $id = intval($id);    // 整型化  
 
  return  $id;  
}  
 
/* 
函数名称:str_check() 
函数作用:对提交的字符串进行过滤 
参  数:$var: 要处理的字符串 
返 回 值:返回过滤后的字符串 
函数作者:heiyeluren 
*/ 
function str_check( $str ) {  
  if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否打开  
    $str = addslashes($str);    // 进行过滤  
  }  
  $str = str_replace("_", "\_", $str);    // 把 '_'过滤掉  
  $str = str_replace("%", "\%", $str);    // 把 '%'过滤掉  
 
  return $str;   
}  
 
/* 
函数名称:post_check() 
函数作用:对提交的编辑内容进行处理 
参  数:$post: 要提交的内容 
返 回 值:$post: 返回过滤后的内容 
函数作者:heiyeluren 
*/ 
function post_check($post) {  
  if (!get_magic_quotes_gpc()) {    // 判断magic_quotes_gpc是否为打开  
    $post = addslashes($post);    // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤  
  }  
  $post = str_replace("_", "\_", $post);    // 把 '_'过滤掉  
  $post = str_replace("%", "\%", $post);    // 把 '%'过滤掉  
  $post = nl2br($post);    // 回车转换  
  $post = htmlspecialchars($post);    // html标记转换  
 
  return $post;  
}  


foreach ($_POST as $post_key=>$post_var)
{
 if (is_numeric($post_var)) {
  $post[strtolower($post_key)] = get_int($post_var);
 } else {
  $post[strtolower($post_key)] = get_str($post_var);
 }
}

/* 过滤函数 */
//整型过滤函数
function get_int($number)
{
    return intval($number);
}
//字符串型过滤函数
function get_str($string)
{
    if (!get_magic_quotes_gpc()) {
 return addslashes($string);
    }
    return $string;
}

?> 

 

转载于:https://www.cnblogs.com/hubing/p/3467590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值