欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

表单验证类 Validator for PHP

程序员文章站 2022-06-01 21:44:39
...

表单验证

文件保存为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 "";
//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"));