第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

表單驗證類(未精簡)

<?php
/****************
*????verify.class.php
*????表單驗證類
*****************/
class?Verify{
????private?$params;

????public?function?__construct($input=array()){
????????$this->init($input);
????}
????
????/*
????*????@function?初始化參數(shù)
????*????@param?array?$input表單域名數(shù)組?示例array("userName","pwd")
????*????@return?
????*/
????public?function?init($input=array()){
????????$this->params=$input;
????}
????
????/**
????*????@function?檢測所有提交數(shù)據(jù)是否通過驗證
????*????@param?array?$input?二維數(shù)組?示例:?array(array("name"=>?,"value"=>,"type"=>,"format"=>,"allow_arr"=>,"maxLength"=>,"mixLength"=>,"isEmpty"=>),)
????*????@return?boolean?true|false
????*/
????public?function?checkAll($input){
????????if(is_array($input)){
????????????$flag=true;
????????????foreach($input?as?$key=>$value){
????????????????if(!isset($this->params[$value["name"]])){
????????????????????continue;
????????????????}
????????????????$value["allow_arr"]=(isset($value["allow_arr"])?&&?is_array($value["allow_arr"]))???$value["allow_arr"]?:?array();
????????????????$value["maxLength"]=isset($value["maxLength"])???$value["maxLength"]?:?0;?
????????????????$value["mixLength"]=isset($value["mixLength"])???$value["mixLength"]?:?0;
????????????????$value["isEmpty"]=isset($value["isEmpty"])???$value["isEmpty"]?:?0;
????????????????$result=$this->inputCheck($value["name"],$value["value"],$value["type"],$value["format"],$value["allow_arr"],$value["maxLength"],$value["mixLength"],$value["isEmpty"]);
????????????????if($result===false){
????????????????????$flag=false;
????????????????????echo?"表單域名稱為".$value["name"]."的值".$value["value"]."未通過驗證";
????????????????????break;
????????????????}
????????????}
????????????return?$flag;
????????}
????}


????/*
????*????@function?輸入?yún)?shù)驗證是否通過
????*????@params?string?$name?表單名
????*????????????mixed?$value?表單名對應的值
????*????????????string?$type?變量類型?必須是基礎數(shù)據(jù)類型int,bool,double,string。????
????*????????????string?$format?數(shù)據(jù)格式類型?email,pwd等
????*????????????array?$allow_arr?允許范圍
????*????????????int?$maxLength?最大長度
????*????????????int?$mixLength?最小長度
????*????????????int?$isEmpty?是否允許為空
????*????@return?boolean?true|false
????*/
????public?function?inputCheck($name,$value,$type,$format,$allow_arr=array(),$maxLength=0,$mixLength=0,$isEmpty=0){
????????//檢查變量是否存在
????????if(!isset($this->params[$name])){
????????????return?false;
????????}
????????//第二步?判斷變量是否有值
????????if(empty($value)){
????????????if($isEmpty==0){
????????????????return?false;
????????????}
????????????else{
????????????????return?true;
????????????}
????????}
????????//第三步?判斷變量類型是否
????????if($this->getParameterType($value)!==$type){
????????????return?false;
????????}
????????//第四步?如果是字符串判斷其是否在指定長度內
????????if(is_string($value)?&&?(strlen(trim($value))<$mixLength?||?strlen(trim($value))>$maxLength)){
????????????return?false;
????????}
????????//第四步?如果是選擇項即allow_arr數(shù)組不為空,是否在數(shù)組范圍內
????????if(!empty($allow_arr)?&&?!in_array($value,$allow_arr)){
????????????return?false;
????????}
????????//第五步?進入正則表達式驗證
????????return?$this->matchValue($value,$format);
????}

????/*
????*????@function?獲得參數(shù)的數(shù)據(jù)類型
????*????@params?mixed?$value參數(shù)
????*????@return?string?$var_type數(shù)據(jù)類型
????*/
????public?function?getParameterType($value){
????????$var_type="";
????????if(is_int($value)){
????????????$var_type="int";
????????}
????????else?if(is_bool($value)){
????????????$var_type="bool";
????????}
????????else?if(is_double($value)){
????????????$var_type="double";
????????}
????????else?if(is_string($value)){
????????????$var_type="string";
????????}
????????else{
????????????$var_type="unkown";
????????}
????????return?$var_type;
????}

????/*
????*????@function?使用正則表達式檢驗值
????*????@params?mixed?$value參數(shù),string?$format數(shù)據(jù)格式類型
????*????@return?boolean?true|false
????*/
????public?function?matchValue($value,$format){
????????switch($format){
????????????case?"integer"://整數(shù)
????????????????return?is_int($value);
????????????????break;
????????????case?"account"://賬號
????????????????//由字母a~z(不區(qū)分大小寫)、數(shù)字0~9、下劃線組成只能以字母開頭和(數(shù)字或字母)結尾?用戶名長度為8~18個字符
????????????????return?preg_match("/^[a-za-z]{1}[a-za-z0-9|_]{6-16}[a-za-z0-9]{1}$/",$value);
????????????????break;
????????????case?"password"://密碼
????????????????//由字母a~z(不區(qū)分大小寫)、數(shù)字0~9、下劃線組成只能以字母開頭和(數(shù)字或字母)結尾?用戶名長度為6~14個字符
????????????????return?preg_match("/^[a-zA-Z]{1}[a-za-z0-9|_]{4-12}[a-za-z0-9]{1}$/",$value);
????????????default:
????????????????break;
????????}
????}
}
//測試代碼
$cols=array("account");
$verify=new?Verify($cols);
$inputCheck=array();
$inputCheck[]=array("name"=>"account","value"=>$account,"type"=>"string","format"=>"account","maxLength"=>18,"mixLength"=>8);
$rs=$verify->checkAll($inputCheck);
?>

本人菜鳥一個,寫了一個簡單的表單驗證類,各位大大及老師幫我看看,還有哪些不足或遺漏的地方,希望指出,謝謝!

正在回答

1 回答

自己糾正一下一個邏輯錯誤,第四步?如果是字符串判斷其是否在指定長度內時

修改前

if(is_string($value)?&&?(strlen(trim($value))<$mixLength?||?strlen(trim($value))>$maxLength)){?
???????????return?false;
}

修改后

if(is_string($value)){
????if(strlen(trim($value))<$mixLength?||?strlen(trim($value))>$maxLength){
????????return?false;
????}
}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
PHP進階篇
  • 參與學習       181905    人
  • 解答問題       2647    個

輕松學習PHP中級課程,進行全面了解,用PHP快速開發(fā)網(wǎng)站程序

進入課程

表單驗證類(未精簡)

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號