表单验证
<script defer><br> /*************************************************<br> Validator for PHP β 客户端脚本<br> code by 我佛山人<br> <u><font color="#1271d0">wfsr@cunite.com<br> <u><font color="#1271d0">http://www.cunite.com<br>*************************************************/<br> function dispError(items, messages, mode, separator){<br> var iArray = items.split(separator);<br> for(var i=iArray.length-1;i>=0;i--)<br> iArray[i] = getObj(iArray[i]);<br> messages = ("以下原因导致提交失败: " + separator + messages).split(separator);<br> switch(mode){<br> case 2 :<br> for(i=iArray.length-1;i>=0;i--)<br> iArray[i].style.color = "red";<br> case 1 :<br> alert(messages.join(" "));<br> iArray[0].focus();<br> break;<br> case 3 :<br> for(i=iArray.length-1;i>=0;i--){<br> try{<br> var span = document.createElement("SPAN");<br> span.id = "__ErrorMessagePanel";<br> span.style.color = "red";<br> iArray[i].parentNode.appendChild(span);<br> span.innerHTML = messages[i+1].replace(/d+:/,"*");<br> }<br> catch(e){alert(e.description);}<br> }<br> iArray[0].focus();<br> break;<br> }<br> }</script>
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;
}
if(! isset($_POST[$this->submit])) return false;
$this->error_mode = $_POST["emode"];
echo "<script defer>document.getElementsByName("emode")[0].selectedIndex =" . ($this->error_mode - 1) . "</script>";
if(is_array($arr)){
$len = count($arr);
for($i = 0; $i $this->is_valid($arr[$i]);
}
}
$this->display_error();
}
$str = split(",", $str);
if(count($str) $name = trim($str[0]);
$message = trim($str[1]);
$data_type = trim($str[2]);
$value = trim($_POST[$name]);
case "compare" :
break;
case "range" :
break;
case "repeat" :
break;
default :
$method = "is_".$data_type;
if(!$this->$method($value))
$this->add_error($name, $message);
break;
}
}
$this->error_item .= "," . $name;
$this->error_message .= "," . $this->error_no . ":" . $message;
$this->error_no ++;
}
$this->error_item = ereg_replace("^,+", "", $this->error_item);
$this->error_message = ereg_replace("^,+", "", $this->error_message);
case 4 :
$info = "以下原因导致提交失败: ,";
echo "<script>alert("".join("<u><font color="#1271d0">\n", split(",", $info . $this->error_message))."")</script>";
//print >>>end;
break;
case 5 :
echo "输入有错误:
- " . ereg_replace( "d+:", "",join("
- ", split(",", $this->error_message))) . "
echo "
返回";
exit;
break;
default :
echo "<script defer>dispError("" . $this->error_item . "", "" . $this->error_message . "", " . $this->error_mode . ", ",")</script>";
break;
}
}
return preg_match("/^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/", $str);
}
return preg_match("/^http://[A-Za-z0-9]+.[A-Za-z0-9]+[/=?%-&_~`@[]':+!]*([^"])*$/", $str);
}
return preg_match("/^[1-9]d{4,8}$/", $str);
}
return preg_match("/^[1-9]d{5}$/", $str);
}
return preg_match("/^d{15}(d{2}[A-Za-z0-9])?$/", $str);
}
return ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str);
}
return preg_match("/^[A-Za-z]+$/", $str);
}
return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);
}
return preg_match("/^(((d{3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}$/", $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"));










