[Language-php]表单验证类 Validator for PHP
来源:互联网 发布:java cs开发实例 编辑:程序博客网 时间:2024/06/05 21:12
- <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="form_Validate.php" method="post">
- <tr>
- <td>提示模式:</td><td>
- <select name="emode">
- <option value="1">警告提示框(客户端)</option>
- <option value="2">提示框加红色文字提示</option>
- <option value="3">附加红色提示</option>
- <option value="4">警告提示框(服务器端)</option>
- <option value="5">文字提示(服务器端)</option>
- </select></td>
- </tr>
- <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>
- <script defer>
- /*************************************************
- Validator for PHP β 客户端脚本
- code by 我佛山人
- wfsr@cunite.com
- http://www.cunite.com
- *************************************************/
- function dispError(items, messages, mode, separator){
- var iArray = items.split(separator);
- for(var i=iArray.length-1;i>=0;i--)
- iArray[i] = getObj(iArray[i]);
- messages = ("以下原因导致提交失败:/t/t/t/t" + separator + messages).split(separator);
- switch(mode){
- case 2 :
- for(i=iArray.length-1;i>=0;i--)
- iArray[i].style.color = "red";
- case 1 :
- alert(messages.join("/n"));
- iArray[0].focus();
- break;
- case 3 :
- for(i=iArray.length-1;i>=0;i--){
- try{
- var span = document.createElement("SPAN");
- span.id = "__ErrorMessagePanel";
- span.style.color = "red";
- iArray[i].parentNode.appendChild(span);
- span.innerHTML = messages[i+1].replace(//d+:/,"*");
- }
- catch(e){alert(e.description);}
- }
- iArray[0].focus();
- break;
- }
- }
- function getObj(name){
- var objs = document.getElementsByName(name);
- return objs[objs.length -1];
- }
- </script>
- <?php
- 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 "<script defer>document.getElementsByName(/"emode/")[0].selectedIndex =" . ($this->error_mode - 1) . "</script>";
- if(is_array($arr)){
- $len = count($arr);
- for($i = 0; $i < $len; $i++){
- $this->is_valid($arr[$i]);
- }
- }
- if($this->error_no > 1)
- $this->display_error();
- }
- 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 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("//n", split(",", $info . $this->error_message))."/")</script>";
- //print >>>end;
- break;
- case 5 :
- 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;
- default :
- echo "<script defer>dispError(/"" . $this->error_item . "/", /"" . $this->error_message . "/", " . $this->error_mode . ", /",/")</script>";
- 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"));
- ?>
<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="form_Validate.php" method="post"> <tr> <td>提示模式:</td><td> <select name="emode"> <option value="1">警告提示框(客户端)</option> <option value="2">提示框加红色文字提示</option> <option value="3">附加红色提示</option> <option value="4">警告提示框(服务器端)</option> <option value="5">文字提示(服务器端)</option> </select></td> </tr> <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> <script defer> /************************************************* Validator for PHP β 客户端脚本 code by 我佛山人 wfsr@cunite.com http://www.cunite.com*************************************************/ function dispError(items, messages, mode, separator){ var iArray = items.split(separator); for(var i=iArray.length-1;i>=0;i--) iArray[i] = getObj(iArray[i]); messages = ("以下原因导致提交失败:/t/t/t/t" + separator + messages).split(separator); switch(mode){ case 2 : for(i=iArray.length-1;i>=0;i--) iArray[i].style.color = "red"; case 1 : alert(messages.join("/n")); iArray[0].focus(); break; case 3 : for(i=iArray.length-1;i>=0;i--){ try{ var span = document.createElement("SPAN"); span.id = "__ErrorMessagePanel"; span.style.color = "red"; iArray[i].parentNode.appendChild(span); span.innerHTML = messages[i+1].replace(//d+:/,"*"); } catch(e){alert(e.description);} } iArray[0].focus(); break; } } function getObj(name){ var objs = document.getElementsByName(name); return objs[objs.length -1]; }</script><?phpclass 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 "<script defer>document.getElementsByName(/"emode/")[0].selectedIndex =" . ($this->error_mode - 1) . "</script>"; if(is_array($arr)){ $len = count($arr); for($i = 0; $i < $len; $i++){ $this->is_valid($arr[$i]); } } if($this->error_no > 1) $this->display_error(); } 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 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("//n", split(",", $info . $this->error_message))."/")</script>"; //print >>>end; break; case 5 : 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; default : echo "<script defer>dispError(/"" . $this->error_item . "/", /"" . $this->error_message . "/", " . $this->error_mode . ", /",/")</script>"; 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"));?>
- [Language-php]表单验证类 Validator for PHP
- [L-php]validator表单验证类PHP版本
- 表单验证类 Validator
- php 表单验证类
- php 表单验证类
- php 表单验证类
- 表单验证类 Validator使用说明
- PHP AJAX 表单验证类
- php常用表单验证类
- php常用表单验证类
- php常用表单验证类
- php实现表单验证类
- php表单验证
- php基本表单验证
- php验证表单
- PHP验证表单
- PHP 表单验证
- php表单验证
- Ubuntu LTS的LTS是什么意思?
- [L-php]validator表单验证类PHP版本
- 散散心社区
- 我们需要你的教条吗?
- c# GridView选择行
- [Language-php]表单验证类 Validator for PHP
- 解决nutch的segmens的拆分与nutch crawl的重载(重新构建)问题
- acm上的一个小题目
- 搜索引擎的原理简介
- Qt Style Sheets Reference
- Linux时间同步
- Snort之架构框架(一)
- Nutch 1.0 Fetcher 抓取模型解析
- 怎么编一个五子棋游戏?(带ai)