<?php
/*@Author Anup */
class ValidateFunction
{
var $errorArray= array();
var $errCnt = 0;
var $errorFor;
function VALIDATE_USPHONE($phonenumber,$useareacode=true)
{
if ( preg_match("/^[ ]*[(]{0,1}[ ]*[0-9]{3,3}[ ]*[)]{0,1}[-]{0,1}[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/",$phonenumber) || (preg_match("/^[ ]*[0-9]{3,3}[ ]*[-]{0,1}[ ]*[0-9]{4,4}[ ]*$/",$phonenumber) && !$useareacode)) return eregi_replace("[^0-9]", "", $phonenumber);
return false;
}
function validateCC($cc_num, $type)
{
if($type == "american") {
$denum = "American Express";
} elseif($type == "dinners") {
$denum = "Diner's Club";
} elseif($type == "discover") {
$denum = "Discover";
} elseif($type == "master") {
$denum = "Master Card";
} elseif($type == "visa") {
$denum = "Visa";
}
if($type == "american") {
$pattern = "/^([34|37]{2})([0-9]{13})$/";//American Express
if (preg_match($pattern,$cc_num)) {
$verified = true;
} else {
$verified = false;
}
} elseif($type == "dinners") {
$pattern = "/^([30|36|38]{2})([0-9]{12})$/";//Diner's Club
if (preg_match($pattern,$cc_num)) {
$verified = true;
} else {
$verified = false;
}
} elseif($type == "discover") {
$pattern = "/^([6011]{4})([0-9]{12})$/";//Discover Card
if (preg_match($pattern,$cc_num)) {
$verified = true;
} else {
$verified = false;
}
} elseif($type == "master") {
$pattern = "/^([51|52|53|54|55]{2})([0-9]{14})$/";//Mastercard
if (preg_match($pattern,$cc_num)) {
$verified = true;
} else {
$verified = false;
}
} elseif($type == "visa") {
$pattern = "/^([4]{1})([0-9]{12,15})$/";//Visa
if (preg_match($pattern,$cc_num)) {
$verified = true;
} else {
$verified = false;
}
}
if($verified == false) {
//Do something here in case the validation fails
//echo "Credit card invalid. Please make sure that you entered a valid <em>" . $denum . "</em> credit card ";
return false;
} else { //if it will pass...do something
//echo "Your <em>" . $denum . "</em> credit card is valid";
return true;
}
}
function chkUrl($url,$field = "")
{
//eregi("http://.[a-zA-Z0-9_.\.-]",$url)
if(eregi("www.[a-zA-Z0-9_.\.-]",$url))
{
return true;
}
else
{
echo "false";
return false;
}
}//function chkUrl($url,$field = "")
function myCheckDNSRR($hostName, $recType = '')
{
if(!empty($hostName)) {
if( $recType == '' ) $recType = "MX";
exec("nslookup -type=$recType $hostName", $result);
// check each line to find the one that starts with the host
// name. If it exists then the function succeeded.
foreach ($result as $line) {
if(eregi("^$hostName",$line)) {
return true;
}
}
// otherwise there was no mail handler for the domain
return false;
}
return false;
}//function myCheckDNSRR($hostName, $recType = '')
function checkMailAddressErr($email)
{
//$exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";
//$exp = "^[a-z]+[a-z0-9_-]*(([.]{1})|([a-z0-9_-]*))[a-z0-9_-]+[@]{1}[a-z0-9_-]+[.](([a-z]{2,3})|([a-z]{3}[.]{1}[a-z]{2}))$";
//$exp = "^[a-z]+[a-z0-9_-]*(([.]{1})|([a-z0-9_-]*))[a-z0-9_-]+[@]{1}[a-z0-9_-]+[.](([a-z]{2,3})|([a-z]{3}[.]{1}[a-z]{2}))$";
$exp = "^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*@[a-zöäüÖÄÜ0-9]+(-[a-zöäüÖÄÜ0-9]+)*(\.[a-zöäüÖÄÜ0-9-]+)*(\.[a-z]{2,4})$";
if(eregi($exp,$email))
{
return true;
}
else
{
return false;
}
}//function checkMailAddressErr($email)
function validate($validation,$fieldName,$message="",$chkBase=0,$notReq=0)
{
//echo $validation." ";
switch($validation)
{
case "cc":
case "creditcard":
$cc_num='';
$cc_type='';
if(is_array($fieldName))
{
if(isset($fieldName['cc_num']))
{
$cc_num = $fieldName['cc_num'];
}
if(isset($fieldName['cc_type']))
{
$cc_type = strtolower($fieldName['cc_type']);
}
}
if(!$this->validateCC($cc_num,$cc_type))
{
echo $this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
break;
case "yearrange":
if(is_array($fieldName)){
if($_REQUEST[$fieldName[0]] !='' && $_REQUEST[$fieldName[1]]!=''){
if(strlen(trim($_REQUEST[$fieldName[0]]))!=4 || strlen(trim($_REQUEST[$fieldName[1]]))!=4){
$this->errorArray[$this->errCnt] = "Enter the years in YYYY format only";
$this->errCnt++;
return false;
}
}
else{
if($_REQUEST[$fieldName[0]] > $_REQUEST[$fieldName[1]] || $_REQUEST[$fieldName[0]] > date("Y",mktime()) || $_REQUEST[$fieldName[1]] > date("Y",mktime())){
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
}
break;
case "yearstilldate":
break;
case "req":
case "required":
{
if(trim($_REQUEST[$fieldName])=="")
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}//if
return true;
break;
}//case required
case "general":
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
break;
}//case required
case "allReq" :
case "allRequired" :
{
/*
PASS $fieldName should be array();
THIS CASE IS TO CHECK
1. IF ALL OF THE GIVEN FIELD IS ENTERED THEN ALL THE FIELD IS COMPULSARY
OR
2. ALL THE FIELD IS COMPULSARY
*/
for($i=0;$i<count($fieldName);$i++)
{
for($i=0;$i<count($fieldName);$i++)
{
$tmp = $fieldName[$i];
if(trim($_REQUEST[$tmp])=="")
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
return true;
}
break;
} // case allRequired
case "atleastOne" :
{
/*
PASS $fieldName should be array();
THIS CASE IS TO CHECK
1. AT LEAST ONE OF THE GIVEN FIELDS IS ENTERED THEN ALL THE FIELD IS COMPULSARY
*/
for($i=0;$i<count($fieldName);$i++)
{
for($i=0;$i<count($fieldName);$i++)
{
$tmp = $fieldName[$i];
if(trim($_REQUEST[$tmp])!="")
{
return true;
}
}
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
break;
} // case allRequired
case "maxlength":
case "maxlen":
{
if( strlen(trim($_REQUEST[$fieldName])) > $chkBase )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}//if
return true;
break;
}//case maxlen
case "minlength":
case "minlen":
{
if( strlen(trim($_REQUEST[$fieldName])) < $chkBase )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}//if
return true;
break;
}//case minlen
/*
case "alnum":
case "alphanumeric":
{
if(!eregi("^[A-Za-z0-9]$",$_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
break;
}//case alphanumeric
*/
case "int":
case "num":
case "numeric":
case "ticket":
{
if(is_array($fieldName))
{
for($i=0;$i<count($fieldName);$i++)
{
if(!eregi("^[0-9]+$",trim($_REQUEST[$fieldName[$i]])) && trim($_REQUEST[$fieldName[$i]]) != "")
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
}
else
{
if(!eregi("^[0-9]+$",trim($_REQUEST[$fieldName])) && trim($_REQUEST[$fieldName]) != "")
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
return true;
break;
}//numeric
case "numericNonZero":
{
}//numeric
case "alphabetic":
case "alpha":
{
if(!eregi("^[a-zA-Z]+$",$_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
break;
}//alpha
case "alnumhyphen":
{
if(!eregi("^[a-zA-Z0-9]$",$_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
break;
}
case "alnum":
{
//echo $_REQUEST[$fieldName];
//if(!eregi("^[a-zA-Z0-9_-]+$",$_REQUEST[$fieldName]))
//^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*
//if(!preg_match('#[a-zA-Z0-9-_]{3,10}#', $_REQUEST[$fieldName]))
if(!eregi("^[a-zA-Z0-9]+([._-][a-zA-Z0-9]+)*$",$_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
break;
}
//^[a-zA-Z0-9]+$"
case "email":
{
if(is_array($fieldName))
{
for($i=0;$i<count($fieldName);$i++)
{
if(!$this->checkMailAddressErr(trim($_REQUEST[$fieldName[$i]])))
{
echo $this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
}
else
{
if(!$this->checkMailAddressErr(trim($_REQUEST[$fieldName])))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
return true;
break;
}//case email
case "sel":
case "select":
{
if(isset($_REQUEST[$fieldName]) && trim($_REQUEST[$fieldName]) == '' )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
}//
case "sel2":
case "select2":
{
if(isset($_REQUEST[$fieldName]) && trim($_REQUEST[$fieldName]) == "" )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
}//
case "multiselect":
{
if(isset($_REQUEST[$fieldName]) && count($_REQUEST[$fieldName])==0)
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
}//
case "allOptions":
{
for($i=0;$i<count($fieldName);$i++)
{
if(isset($_REQUEST[$fieldName[$i]]) && $_REQUEST[$fieldName[$i]]!=-1 && trim($_REQUEST[$fieldName[$i]])!="" )
{
continue;
}
else
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
return true;
break;
}// case select
case "dontselect":
{
}//case dontselect
case "area":
{
}//case area
case "radio":
case "checkbox":
{
if(!isset($_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
return true;
break;
}//case checkbox && radio
case "float":
{
}//float
break;
case "phone":
{
if(!$this->VALIDATE_USPHONE($_REQUEST[$fieldName]) )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}//float
break;
case "url":
{
if(!$this->chkUrl($_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
else
{
return true;
}
}
break;
case "comparepassword":
{
if($_REQUEST[$fieldName[0]] != $_REQUEST[$fieldName[1]] )
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
case "ssn":
{
if(!isValidSSN($fieldName))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
case "float":
case "price":
{
if(!is_numeric($_REQUEST[$fieldName]))
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
else
{
return true;
}
}
break;
case "phone":
case "fax":
{
if($_REQUEST[$fieldName[0]] == "" && $_REQUEST[$fieldName[1]] == "" && $_REQUEST[$fieldName[2]] == "" )
{
return true;
}
elseif($_REQUEST[$fieldName[0]] != "" && $_REQUEST[$fieldName[1]] != "" && $_REQUEST[$fieldName[2]] != "" )
{
return true;
}
else
{
$this->errorArray[$this->errCnt] = $message;
$this->errCnt++;
return false;
}
}
break;
}//switch($validation)
}//function validate($validation,$fieldName,$message="",$chkBase=0)
}// class ValidateFunction
?>
Thursday, October 9, 2008
php form validator
Subscribe to:
Posts (Atom)