【php开源代码栏目提醒】:网学会员为需要php开源代码的朋友们搜集整理了validator.php相关资料,希望对各位网友有所帮助!
<?php
/*
[SupeV] (C)2007-2008 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: validator.php 4461 2008-03-31 06:57:43Z xkxmud $
*/
if(!defined('IN_SUPEV')) {
exit('Access Denied');
}
class validator{
var $submit;
var $error_item, $error_message, $error_mode, $error_no;
function validator($submit_name = "submit", $mode = 2){
$this->submit = $submit_name;
$this->error_mode = $mode;
$this->error_no = 1;
}
function validate($arr){
if(!isset($_POST[$this->submit])) return false;
if(is_array($arr)){
$len = count($arr);
for($i = 0; $i < $len; $i++){
$this->is_valid($arr[$i]);
}
}
if($this->error_no > 1)
return $this->display_error();
}
function is_valid($str){
if(count($str) < 3) return false;
$name = trim($str['name']);
$message = trim($str['message']);
$type = trim($str['type']);
$max_len = trim($str['max_len']);
$min_len = trim($str['min_len']);
$value = trim($$name ? $$name : ($_POST[$name] ? $_POST[$name] : $_GET[$name]));
switch($data_type){
case "compare" :
break;
case "range" :
break;
case "repeat" :
break;
default :
$method = "is_".$type;
if(!$this->$method($value)) {
$this->add_error($name, $message);
}
if(!empty($max_len) && $max_len < strlen($value)) {
$this->add_error($name, $message);
}
if(!empty($min_len) && $min_len > strlen($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 1 :
$info = "鎻愪氦淇℃伅閿欒鐨勫師鍥燶t\t\t,";
return "<script>alert(\"".join("\\n", split(",", $info . $this->error_message))."\")</script>";
//print >>>end;
break;
case 2 :
return "<br /><ul><li>" . ereg_replace( "\b\d+:", "",join("</li><li>", split(",", $this->error_message))) . "</li></ul>";
break;
default :
return $this->error_message;
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_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();
$result = $v->validate(
array(
array(
'name' => 'nick', 'info' => 'dfsfddsfdsdsfs', 'type' = 'english'
, 'max_len' => 20, 'min_len' = 0
)
, array(
'name' => 'nick', 'info' => 'sdsaadsad', 'type' = 'safe'
, 'max_len' => 20, 'min_len' = 0
)
)
);
?>
上一篇:
ValidationFailed.php
下一篇:
高职院理实一体信息技术论文