Home >php教程 >php手册 >表单验证类 Validator for PHP

表单验证类 Validator for PHP

WBOY
WBOYOriginal
2016-06-21 08:58:46833browse

表单验证

文件保存为form_Validate.php
 
PHP代码

表单验证类 Validator for PHP β
 
 

 
  
 
 
  
 
 
  
 
   
  
 
 
  
 
 
  
 
 
  
 
   
  
 
 
  
 
   
  
 
 
  
 
  
  
 
  
  
 
  
  
 
    
  
 
  
  
 
 
  
 
 
  
 
 
  
 
 
  
 
  
 
    
 
 
  
 
 
 
提示模式:
  
真实姓名:
英文名:
主页:
密码:
重复:
信箱:
信箱:
QQ:
身份证:
年龄:
年龄1:
电话:
手机:
生日:
邮政编码:
邮政编码:
操作系统:
所在省份: 广东陕西浙江江西
爱好: 运动上网听音乐看书
自我介绍: 自传:

 
 function getObj(name){
 var objs = document.getElementsByName(name);
 return objs[objs.length -1];
 }

class Validator{
/*************************************************
 Validator for PHP  β 服务器端脚本
 code by 我佛山人
 wfsr@cunite.com
 http://www.cunite.com
*************************************************/
 var $submit;
 var $error_item, $error_message, $error_mode, $error_no;
 function Validator($submit_name = "Submit", $mode = 5){
  $this->submit = $submit_name;
  $this->error_mode = $mode;
  $this->error_no = 1;
 }
 function Validate($arr){
  if(! isset($_POST[$this->submit])) return false;
  $this->error_mode = $_POST["emode"];
  echo "";
  if(is_array($arr)){
   $len = count($arr);
   for($i = 0; $i     $this->is_valid($arr[$i]);
   }
  }
  if($this->error_no > 1) 
   $this->display_error();
 }
 function is_valid($str){
  $str = split(",", $str);
  if(count($str)   $name = trim($str[0]);
  $message = trim($str[1]);
  $data_type = trim($str[2]);
  $value = trim($_POST[$name]);
  switch($data_type){
   case "compare" :
    break;
   case "range" :
    break;
   case "repeat" :
    break;
   default :
    $method = "is_".$data_type;
    if(!$this->$method($value))
     $this->add_error($name, $message);
    break;
  }
 }
 function add_error($name, $message){
  $this->error_item .= "," . $name;
  $this->error_message .= "," . $this->error_no . ":" . $message;
  $this->error_no ++;
 }
 function display_error(){
  $this->error_item = ereg_replace("^,+", "", $this->error_item);
  $this->error_message = ereg_replace("^,+", "", $this->error_message);
  switch($this->error_mode){
   case 4 :
    $info = "以下原因导致提交失败:\t\t\t\t,";
    echo "<script>alert(\"".join("<U><FONT color=#1271d0>\\n", split(",", $info . $this->error_message))."\")</script>";
    //print >>>end;
    break;
   case 5 :
    echo "输入有错误:
  • " . ereg_replace( "\b\d+:", "",join("
  • ", split(",", $this->error_message))) . "
";
    echo "
返回";
    exit;
    break;
   default :
    echo "";
   break;
  }
 }
 function is_email($str){
  return preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $str);
 }
 function is_url($str){
  return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"])*$/", $str);
 }
 function is_qq($str){
  return preg_match("/^[1-9]\d{4,8}$/", $str);
 }
 function is_zip($str){
  return preg_match("/^[1-9]\d{5}$/", $str);
 }
 function is_idcard($str){
  return preg_match("/^\d{15}(\d{2}[A-Za-z0-9])?$/", $str);
 }
 function is_chinese($str){
  return ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str);
 }
 function is_english($str){
  return preg_match("/^[A-Za-z]+$/", $str);
 }
 function is_mobile($str){
  return preg_match("/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/", $str);
 }
 function is_phone($str){
  return preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/", $str);
 }
 function is_safe($str){
  return (preg_match("/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}\?\\\/\'\"]*)|.{0,5})$|\s/", $str) != 0);
 }
}
$v = new Validator();
$v->Validate(array("Name,名字只允许中文,chinese", "Nick, 只允许英文昵称, english", "Homepage, 主页Url格式不正确, url", "Password, 密码不符合安全规则, safe","Email,信箱格式错误,email", "QQ, QQ号码不存在, qq","Card, 身份证号码不正确, idcard","Phone, 电话号码不存在, phone","Mobile, 手机号码不存在, mobile","Zip, 邮政编码不存在, zip"));



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn