php 表单验证过滤类

class post_get{
private $array; #提交表单检测字段和检测要求
# $type;  缺省为更新 或$type ="Into";  
public function _post_get($array,$type=""){
  if(!$array) die(" Error!! ");
   foreach ($array as $v)
   {
   $KK = $this->ck_split($v);
   $KKarray = split("_", $KK);
   if(preg_match("/Yes|No/is",$KKarray[1]))
    {
    $escape_filter = ($KKarray[2])? 'ck_'.$KKarray[2]:"";#需要转义和过滤
    $data = ($escape_filter)? $this->$escape_filter($_POST[$KKarray[0]]):$_POST[$KKarray[0]]; #输出合法数据
       if($data)
     {
     if(is_array($data))$data = implode(",",$data);
     $Into_data  .=",'$data'";
     $Into_Field.=",`$KKarray[0]`";
     $Updat_array[] ="`$KKarray[0]` = '$data'";
     }
    }
    else $error .= ($KK)? "[".$KK."],":"";
   }
   $_data=(!$type)? $Updat_array:array("$Into_Field","$Into_data");
   return (!$error)? $_data:$this->ck_script($error); # 数组为合法表单验证结果,字符串为错误信息提示
  }
public function ck_split($str){
  $strarray = explode(",",$str);
  foreach ($strarray as $i=> $var)
   if(0 ===$i)
   $name = trim($var);
  elseif(1===$i)
   {
   if(eregi("No",trim($var))&&!$_POST[$name])break;     #缺省忽略,否则...
   else $_type = (trim($var))? $name.'_'.trim($var):""; #检测后动作
   }
   elseif(2===$i)
   {
    $error = trim($var);
    if(!$_POST[$name])
    {
     $_error = $error;
     break;
    }
   }
   else # 检测部分
   {
    if(!trim($var))break;
    if(is_array($_POST[$name]))
    {
     foreach ($_POST[$name] as $_var)
      {
      $_error= ($this->ck_open($_var,trim($var)))?"":$error;
      if($_error)break;
      }
    }
    else
     {
     $_error= ($this->ck_open($_POST[$name],trim($var)))?"":$error;
     if($_error)break;
     }
   }
   return ($_error)? """.$name."","".$_error.""":$_type;
   }
# 窗口js提示
public function ck_script($str){
$str= trim($str,",");
  $str =  "
  <script>
  var str = new Array( $str );
  for (i=0; i < str.length; i++)
  {
  document.getElementById('J'+str[0]+'').innerHTML= str[1];
  }
  </script>
  ";
return $str;
}
# 类型判断
public function ck_detected($str){
  return (eregi("^[a-zA-Z]*$",$str))? 'ck_'.$str:'ck_Length';
}
# 函数调用
public function ck_open($string,$str){
  $functi = $this->ck_detected($str);
  return ($this->$functi($string,$str))? true:false;
}
#-------------------------------------以下为检测函数  
# 长度
public function ck_Length($string,$str){
  $len = split('-',trim($str));
  return (strlen($string) > ($len[0]-1) && strlen($string) < ($len[1]+1))? true:false;
}
# 价格
public function ck_money($str){
  return preg_match("/^(-|+)?d+(.d+)?$/",$str);
}
# 邮件
public function ck_email($str){
  return preg_match("/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/", $str);
}
# 网址
public function ck_url($str){
  return preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^<>"])*$/", $str);
}
# 数字型
public function ck_num($str){
  return is_numeric($str);
}
# 中文
public function ck_cn($str){
  return preg_match("/^[x7f-xff]+$/", $str);
}
# 字母
public function ck_en($str){
  return preg_match("/^[A-Za-z]+$/", $str);
}
# 数字字母混合
public function ck_numen($str){
  return preg_match("/^([a-zA-Z0-9_-])+$/",$str);
}
# 电话号码
public function ck_tel($str){
  return ereg("^[+]?[0-9]+([xX-][0-9]+)*$", $str);
}
# 敏感词
public function ck_key($str){
  Global $badkey;
  return (!preg_match("/$badkey/i",$str));
}
#-----------------------------------------------------输出
# 字符替换
public function ck_filter($str){
  $str=(is_array($str))? implode(",",$str):$str;
  $str=HTMLSpecialChars($str); //将特殊字元转成 HTML 格式。
  $str=nl2br($str); //将回车替换为<br>
  $str=str_replace(array(" ",'<? '),array(" ",'< ?'),$str); //替换空格替换为
  return $str;
}
# MD5加密
public function ck_md($str){
  return  MD5($str);
}
# 转义
public function ck_escape($str){
  return  (is_array($str))? implode(",",$str):$str;
}
# 有条件注销(数字)
public function ck_cancel($str){
  return (!is_numeric($str))? $str:"";
}
# 无条件注销(数字)
public function ck_delete(){
  return null;
  }
}

时间: 2024-10-29 23:40:55

php 表单验证过滤类的相关文章

js原生态表单验证Validator类

功能点: 1.原生js,不依赖任何库 2.动态添加验证规则 3.设置是否实时报错 4.错误提示的样式,单条显示还是合并显示,以及函数形式 5.遇到错误是否停止接下来的验证 6.常用验证,邮箱,字符串,手机,以及两个字段进行比较的验证,支持自定义正则 7.单条验证规则失败后的提示信息,支持字符串或者函数 使用说明:  代码如下 复制代码 var F = Validator('form表单name值',{         together : false, //默认遇错误打断,显示单条错误信息,默认

java正则表达式表单验证类工具类(验证邮箱、手机号码、qq号码等)_java

java使用正则表达式进行表单验证工具类,可以验证邮箱.手机号码.qq号码等 复制代码 代码如下: package util; import java.util.regex.Matcher;import java.util.regex.Pattern; /** * 使用正则表达式进行表单验证 *  */ public class RegexValidateUtil {    static boolean flag = false;    static String regex = ""

php封装的表单验证类完整实例_php技巧

本文实例讲述了php封装的表单验证类.分享给大家供大家参考,具体如下: <?php //封装一个表单验证类 //中文验证.邮箱验证.电话号码.手机.QQ.身份证.(由字母.数字.下划线组成,不能以数字开头) header('content-type:text/html;charset=utf-8'); class Form{ /* //中文验证的方法 //参数:$str,$num1,$num2 //返回值:匹配成功返回匹配的次数 */ public function checkChina($st

PHP常用的表单验证类

PHP动态网页开发中常用的表单验证类 以下为引用的内容: <?php class class_post { //验证是否为指定长度的字母/数字组合 function fun_text1($num1,$num2,$str) { Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false; } //验证是否为指定长度数字 function fun_tex

表单验证类 Validator for PHP

表单验证 文件保存为form_Validate.php PHP代码 <title>表单验证类 Validator for PHP β</title> <style> body,td{font:normal 12px Verdana;color:#333333} input,textarea,select,td{font:normal 12px Verdana;color:#333333;border:1px solid #999999;background:#fffff

PHP中常用的表单验证类

PHP动态网页开发中常用的表单验证类 <?php class class_post { //验证是否为指定长度的字母/数字组合 function fun_text1($num1,$num2,$str) { Return (preg_match("/^[a-zA-Z0-9]{".$num1.",".$num2."}$/",$str))?true:false; } //验证是否为指定长度数字 function fun_text2($num1,$

php常用表单验证类用法实例

  本文实例讲述了php常用表单验证类用法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

Jquery 表单验证类介绍与实例

 代码如下: <form action="" method="post" id="formValidate">  数值:<input name="" type="text" validate="number" /><span></span><br/>  浮点型:<input name="" type=&

编辑浪子版表单验证类_javascript技巧

Autor:编辑浪子 From:http://bbs.51js.com/thread-68161-1-1.html //表单验证类 function ValidatorClass() {  var IsError = false;  //检查姓名,只能输入中文.字母.数字.下划线  this.ChkName = function(obj,msg)  {  if (IsError) return;  if (obj.value.Trim().length<2||(/[^u4e00-u9fa5w]/