<?php
class Validator{
/*************************************************
    Validator for PHP  β 服务器端脚本
    code by 我佛山人
    wfsr@cunite.com
    http://www.cunite.com
    modify:feifengxlq<许> http://www.phpobject.net/blog  feifengxlq@gmail.com
demo:
$v = new Validator();
if(!$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"))){
   echo $v->error();
}
*************************************************/
    
var $error_item$error_message$error_mode$error_no;
    function 
Validator($mode 6){
        
$this->error_mode $mode;
        
$this->error_no 1;
    }

    function 
Validate($arr){
        if(
is_array($arr)){
            
$len count($arr);
            for(
$i 0$i $len$i++){
                
$this->is_valid($arr[$i]);
            }
        }

        if(
$this->error_no 1)return false;
        return 
true;
    }

    function 
is_valid($str){
        
$str split(","$str);
        if(
count($str) < 3) return false;
        
$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 
error($mode=''){
        
$this->error_item ereg_replace("^,+"""$this->error_item);
        
$this->error_message ereg_replace("^,+"""$this->error_message);
        
$mode=(empty($mode))?$this->error_mode:$mode;
        switch(
$mode){
            case 
:
                
$info "以下原因导致提交失败:\t\t\t\t,";
                echo 
"<script>alert(\"".join("\\n"split(","$info $this->error_message))."\")</script>";
                
//print >>>end;
                
break;
            case 
:
                echo 
"输入有错误:<br /><ul><li>" ereg_replace"\b\d+:""",join("</li><li>"split(","$this->error_message))) . "</li></ul>";
                echo 
"<br /><a href='javascript:history.back()'>返回</a>";
                exit;
                break;
            case 
6:
                
$info="输入有错误:<br /><ul><li>" ereg_replace"\b\d+:""",join("</li><li>"split(","$this->error_message))) . "</li></ul>";
                
$info.="<br /><a href='javascript:history.back()'>返回</a>";
                return 
$info;
            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);
    }
}
?>


给一个简单的演示,也是我佛山人的。

 <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:#ffffff}
table{border-collapse:collapse;}
td{padding:3px}
input{height:20;}
textarea{width:80%;height:50px;overfmin:auto;}
form{display:inline}
</style>
<table align="center">
<form action="validator.php" method="post">
 <tr>
  <td>真实姓名:</td><td><input name="Name"></td>
 </tr>
 <tr>
  <td>英文名:</td><td><input name="Nick"></td>
 </tr>
   <tr>
  <td>主页:</td><td><input name="Homepage"></td>
 </tr>
 <tr>
  <td>密码:</td><td><input name="Password"></td>
 </tr>
 <tr>
  <td>重复:</td><td><input name="Repeat"></td>
 </tr>
 <tr>
  <td>信箱:</td><td><input name="Email"></td>
 </tr>
   <tr>
  <td>信箱:</td><td><input name="Email1"></td>
 </tr>
 <tr>
  <td>QQ:</td><td><input name="QQ"></td>
 </tr>
   <tr>
  <td>身份证:</td><td><input name="Card"></td>
 </tr>
 <tr>
  <td>年龄:</td><td><input name="Year"></td>
 </tr>
  <tr>
  <td>年龄1:</td><td><input name="Year1"></td>
 </tr>
  <tr>
  <td>电话:</td><td><input name="Phone"></td>
 </tr>
  <tr>
  <td>手机:</td><td><input name="Mobile"></td>
 </tr>
    <tr>
  <td>生日:</td><td><input name="Birthday"></td>
 </tr>
  <tr>
  <td>邮政编码:</td><td><input name="Zip"></td>
 </tr>
 <tr>
  <td>邮政编码:</td><td><input name="Zip1"></td>
 </tr>
 <tr>
  <td>操作系统:</td><td><select name="OS"><option value="">选择您所用的操作系统</option><option value="Win98">Win98</option><option value="Win2k">Win2k</option><option value="WinXP">WinXP</option></select></td>
 </tr>
 <tr>
  <td>所在省份:</td><td>广东<input name="Province" value="1" type="radio">陕西<input name="Province" value="2" type="radio">浙江<input name="Province" value="3" type="radio">江西<input name="Province" value="4" type="radio"></td>
 </tr>
 <tr>
  <td>爱好:</td><td>运动<input name="Favorite" value="1" type="checkbox">上网<input name="Favorite" value="2" type="checkbox">听音乐<input name="Favorite" value="3" type="checkbox">看书<input name="Favorite" value="4" type="checkbox"></td>
 </tr>
  <td>自我介绍:</td><td><textarea name="Description">中文是一个字</textarea></td>
 </tr>
    <td>自传:</td><td><textarea name="History">中文是两个字节t</textarea></td>
 </tr>
 <tr>
  <td colspan="2"><input name="Submit" type="submit" value="确定提交"></td>
 </tr>
 </form>
</table>

验证文件

<?
require_once('Validator.class.php');
$v = new Validator();
if(!
$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"))){
   echo 
$v->error();
}
?>

相关文章:

  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-24
  • 2021-07-25
猜你喜欢
  • 2021-08-04
  • 2022-12-23
  • 2022-12-23
  • 2022-03-04
  • 2022-02-26
  • 2021-07-17
  • 2022-03-03
相关资源
相似解决方案