File manager - Edit - /home/adiance/public_html/beta/wp-content/plugins/wp-google-map-plugin/core/class.validation.php
Back
<?php /** * WPGMP Validator class File. * @package Core * @author Flipper Code <hello@flippercode.com> */ if ( ! class_exists( 'FlipperCode_Validator' ) ) { /** * FlipperCode_Validator Class * @author Flipper Code <hello@flippercode.com> * @package Core */ class FlipperCode_Validator { /** * FlipperCode_Validator Constructer. */ public function __construct() { $this->id = 0; } /** * Check if rule already exists. * @param string $varname Element name. * @param string $authType Validation Type. * @return boolean True or False. */ function is_exist($varname, $authType) { for ( $i = 0;$i < $this->id;$i++ ) { if ( $this->check_vars[ $i ]['name'] == $varname && $this->check_vars[ $i ]['authtype'] == $authType ) { return true; } } return false; } /** * Add rule in queue. * @param string $varname Element name. * @param array $postVar Post Variable. * @param string $authType Validation Type. * @param string $error Error message. */ public function add($varname, $postVar, $authType, $error) { global $frmdata; $is_exist = $this->is_exist( $varname,$authType ); if ( true == $is_exist ) { return; } $index = $this->id++; $this->check_vars[ $index ]['name'] = $varname; $this->check_vars[ $index ]['data'] = $postVar; $this->check_vars[ $index ]['authtype'] = $authType; $this->check_vars[ $index ]['error'] = $error; } /** * Validate all rules. * @return string Validation response. */ public function validate() { $errordata = array(); for ( $i = 0; $i < $this->id; $i++ ) { $errorMsg = ''; $name = $this->check_vars[ $i ]['name']; $postVar = $this->check_vars[ $i ]['data']; $authType = $this->check_vars[ $i ]['authtype']; $error = $this->check_vars[ $i ]['error']; $pos = strpos( $authType, '=' ); if ( false != $pos ) { $authType = substr( $this->check_vars[ $i ]['authtype'], 0, $pos ); $value = substr( $this->check_vars[ $i ]['authtype'], $pos + 1 ); } switch ( $authType ) { case 'req': { if ( isset( $postVar['name'] ) and is_array( $postVar['name'] ) ) { $count = count( $postVar['name'] ); for ( $j = 0; $j < $count; $j++ ) { $length = strlen( trim( $postVar['name'][ $j ] ) ); if ( ! $length ) { $errorMsg .= $error.' :File '.($j + 1).''; } } } elseif ( isset( $postVar['name'] ) && empty( $postVar['name'] ) ) { $length = strlen( trim( $postVar['name'] ) ); if ( ! $length ) { $errorMsg .= $error.''; } } else { $length = strlen( trim( $postVar ) ); if ( ! $length ) { $errorMsg .= $error.''; } } break; } case 'alpha': { $regexp = '/^[A-za-z]$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'alphanum': { $regexp = '/^[A-za-z0-9]$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'num': { $regexp = '/^[0-9]*$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'max': { $length = strlen( trim( $postVar ) ); if ( $length > $value ) { $errorMsg .= $error.'<br>'; } break; } case 'min': { $length = strlen( trim( $postVar ) ); if ( $length < $value && 0 != $length ) { $errorMsg .= $error.'<br>'; } break; } case 'lte': { if ( is_array( $postVar ) ) { $count = count( $postVar ); if ( $count > $value ) { $errorMsg .= $error.'<br>'; } } else { if ( $postVar > $value ) { $errorMsg .= $error.'<br>'; } } break; } case 'gte':{ if ( is_array( $postVar ) ) { $count = count( $postVar ); if ( $count < $value ) { $errorMsg .= $error.'<br>'; } } else { if ( $postVar < $value ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } } break; } case 'username': { $regexp1 = '/^[0-9]$/'; $regexp2 = '/^[a-zA-Z]+[a-zA-Z0-9\.\_]*[a-zA-Z0-9]+$/'; if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'name':{ $regexp = '/^[a-zA-Z]+[a-zA-Z\.\- ]*[a-zA-Z]+$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'address':{ $regexp = '/^[a-zA-Z0-9]+.*$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'phone': { if ( isset( $value ) ) { $found = strpos( $value, ',' ); if ( false === $found ) { $options[0] = $value; } else { $options = explode( ',', $value ); } } $patternMatch = 0; foreach ( $options as $opt ) { $type = $this->available_phone_type( $opt ); foreach ( $type as $regexp ) { if ( preg_match( $regexp, $postVar ) ) { $patternMatch = 1; } } if ( $patternMatch ) { break; } } if ( ! $patternMatch ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'allphone': { $regexp1 = '/^[0-9]{8,15}$/'; // (+91)1111111111 $regexp2 = '/^[\(][\+][0-9]{2}[\)][0-9]{8,15}$/'; // +911111111111 $regexp3 = '/^[\+][0-9]{2}[0-9]{8,15}$/'; // 91-1111111111 $regexp4 = '/^[0-9]{2}[\-][0-9]{10}$/'; $regexp5 = '/^[0-9,\-]{8,15}$/'; $regexp6 = '/^[0-9,\(][0-9,\-,\(,\)][0-9,\)]{10,15}$/'; if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) && ! preg_match( $regexp3, trim( $postVar ) ) && ! preg_match( $regexp4, trim( $postVar ) ) && ! preg_match( $regexp5, trim( $postVar ) ) && ! preg_match( $regexp6, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'zip':{ $regexp = '/^[0-9]{6,10}$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'uszip':{ // 12345-6789 $regexp = '/^[0-9]{5}[\-]{1}[0-9]{4}$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'ukzip':{ $regexp = '/^[a-zA-Z]{2}[0-9]{1}[ ]{1}[0-9]{1}[a-zA-Z]{2}$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'ssn':{ $regexp = '/^(?!000)([0-6][0-9]{2}|7([0-6][0-9]|7[012]))([ -]?)(?!00)[0-9][0-9]\3(?!0000)[0-9]{4}$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'currency':{ $regexp1 = '/^[0-9]+\.[0-9]+$/'; $regexp2 = '/^[0-9]+$/'; if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'email':{ if ( function_exists( 'is_email' ) ) { if ( ! is_email( trim( $postVar ) ) ) { $errorMsg .= $error.'<br>'; } } else { $regexp = '/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } } break; } case 'url':{ $regexp = '|^http(s)?://[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'ip':{ $regexp = '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/'; if ( ! preg_match( $regexp, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } case 'date':{ $errorMsg .= $this->validate_date( trim( $postVar ), $value, $error ); break; } case 'ftype':{ $errorMsg .= $this->validate_file_type( $postVar, $value, $error ); break; } case 'fsize':{ $errorMsg .= $this->validate_file_size( $postVar, $value, $error ); break; } case 'imgwh':{ $errorMsg .= $this->validate_image_height_width( $postVar, $value, $error ); break; } case 'custom':{ if ( ! preg_match( $value, trim( $postVar ) ) ) { $length = strlen( trim( $postVar ) ); if ( $length ) { $errorMsg .= $error.'<br>'; } } break; } } if ( $errorMsg ) { $errordata[ $name ] = $error; } } if ( $errordata ) { return $errordata; } else { return false; } } /** * Validate data input. * @param string $postVar Element name. * @param string $value Element value. * @param string $error Error message. * @return string Error message if not valid. */ function validate_date($postVar, $value, $error) { $errorMsg = ''; $length = strlen( trim( $postVar ) ); if ( $length ) { if ( isset( $value ) ) { $found = strpos( $value, ',' ); if ( false === $found ) { $options[0] = $value; } else { $options = explode( ',', $value ); } } else { $options[0] = 'dd-mm-yyyy'; } $patternMatch = 0; foreach ( $options as $opt ) { $pos1 = strpos( $opt, '-' ); $pos2 = strpos( $opt, '/' ); $pos3 = strpos( $opt, '.' ); if ( false !== $pos1 ) { if ( 2 == $pos1 ) { if ( strlen( $opt ) == 8 ) { $regexp = '/^[0-9]{2}[\-][0-9]{2}[\-][0-9]{2}$/'; } else { $regexp = '/^[0-9]{2}[\-][0-9]{2}[\-][0-9]{4}$/'; } } if ( 4 == $pos1 ) { $regexp = '/^[0-9]{4}[\-][0-9]{2}[\-][0-9]{2}$/'; } } if ( false !== $pos2 ) { if ( 2 == $pos2 ) { if ( strlen( $opt ) == 8 ) { $regexp = '/^[0-9]{2}[\/][0-9]{2}[\/][0-9]{2}$/'; } else { $regexp = '/^[0-9]{2}[\/][0-9]{2}[\/][0-9]{4}$/'; } } if ( 4 == $pos2 ) { $regexp = '/^[0-9]{4}[\/][0-9]{2}[\/][0-9]{2}$/'; } } if ( false !== $pos3 ) { if ( 2 == $pos3 ) { if ( 8 == strlen( $opt ) ) { $regexp = '/^[0-9]{2}[\.][0-9]{2}[\.][0-9]{2}$/'; } else { $regexp = '/^[0-9]{2}[\.][0-9]{2}[\.][0-9]{4}$/'; } } if ( 4 == $pos3 ) { $regexp = '/^[0-9]{4}[\.][0-9]{2}[\.][0-9]{2}$/'; } } if ( preg_match( $regexp, $postVar ) ) { $patternMatch = 1; if ( (isset( $pos1 ) && 2 == $pos1 ) || (isset( $pos2 ) && 2 == $pos2 ) || (isset( $pos3 ) && 2 == $pos3 ) ) { $str1 = substr( $opt, 0, 2 ); $str2 = substr( $opt, 3, 2 ); if ( 'dd' == $str1 ) { $DD = substr( $postVar, 0, 2 ); $MM = substr( $postVar, 3, 2 ); $YY = substr( $postVar, 6 ); } if ( 'mm' == $str1 ) { $MM = substr( $postVar, 0, 2 ); $DD = substr( $postVar, 3, 2 ); $YY = substr( $postVar, 6 ); } if ( 'yy' == $str1 ) { if ( 'mm' == $str2 ) { $YY = substr( $postVar, 0, 2 ); $MM = substr( $postVar, 3, 2 ); $DD = substr( $postVar, 6 ); } else { $MM = substr( $postVar, 0, 2 ); $DD = substr( $postVar, 3, 2 ); $YY = substr( $postVar, 6 ); } } } if ( (isset( $pos1 ) && 4 == $pos1) || (isset( $pos2 ) && 4 == $pos2) || (isset( $pos3 ) && 4 == $pos3) ) { $str = substr( $opt, 5, 2 ); if ( 'dd' == $str ) { $YY = substr( $postVar, 0, 4 ); $DD = substr( $postVar, 6, 2 ); $MM = substr( $postVar, 8, 2 ); } if ( 'mm' == $str ) { $YY = substr( $postVar, 0, 4 ); $MM = substr( $postVar, 6, 2 ); $DD = substr( $postVar, 6, 2 ); } } if ( 0 == $DD || 0 == $MM || 0 == $YY ) { $errorMsg .= 'Invalid Date...<br>'; } if ( $MM <= 12 ) { switch ( $MM ) { case 4: case 6: case 9: case 11: if ( $DD > 30 ) { $errorMsg .= 'Selected month has maximum 30 days.<br>'; } default: if ( $DD > 31 ) { $errorMsg .= 'Selected month has maximum 31 days.<br>'; } break; } } if ( ($YY % 4) == 0 ) { if ( (2 == $MM) && ($DD > 29) ) { $errorMsg .= 'Invalid days in February for leap year.<br>'; } } else { if ( (2 == $MM) && ($DD > 28) ) { $errorMsg .= 'Invalid days in February for non leap year.<br>'; } } } if ( $patternMatch ) { break; } } if ( ! $patternMatch ) { $errorMsg .= $error.'<br>'; } } return $errorMsg; } /** * Validate file type. * @param string $postVar Element name. * @param string $value Element value. * @param string $error Error message. * @return string Error message. */ function validate_file_type($postVar, $value, $error) { $errorMsg = ''; if ( isset( $value ) ) { $found = strpos( $value, ',' ); if ( false === $found ) { $options[0] = $value; } else { $options = explode( ',', $value ); } } if ( is_array( $postVar['name'] ) ) { $totalFiles = count( $postVar['name'] ); for ( $i = 0; $i < $totalFiles; $i++ ) { if ( $postVar['name'][ $i ] ) { $fileTypeMatch = 0; foreach ( $options as $id => $type ) { $typeArray = $this->available_file_types( $type ); if ( in_array( $postVar['type'][ $i ], $typeArray ) ) { $fileTypeMatch = 1; } if ( $fileTypeMatch ) { break; } } if ( ! $fileTypeMatch ) { $errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>'; } } } } else { if ( $postVar['name'] ) { $fileTypeMatch = 0; foreach ( $options as $id => $type ) { $typeArray = $this->available_file_types( $type ); if ( in_array( $postVar['type'], $typeArray ) ) { $fileTypeMatch = 1; } if ( $fileTypeMatch ) { break; } } if ( ! $fileTypeMatch ) { $errorMsg .= $error.' ('.$postVar['name'].')<br>'; } } } return $errorMsg; } /** * Available file valid extensions. * @param string $ext Extension. * @return array File types. */ function available_file_types($ext) { switch ( $ext ) { case 'txt': $type[0] = 'text/plain'; break; case 'xml': $type[0] = 'text/xml'; $type[1] = 'application/xml'; break; case 'csv': $type[0] = 'text/x-comma-separated-values'; $type[1] = 'application/octet-stream'; $type[2] = 'text/plain'; break; case 'zip': $type[0] = 'application/zip'; break; case 'tar': $type[0] = 'application/x-gzip'; break; case 'ctar': $type[0] = 'application/x-compressed-tar'; break; case 'pdf': $type[0] = 'application/pdf'; break; case 'doc': $type[0] = 'application/msword'; $type[1] = 'application/octet-stream'; break; case 'xls': $type[0] = 'application/vnd.ms-excel'; $type[1] = 'application/vnd.oasis.opendocument.spreadsheet'; break; case 'ppt': $type[0] = 'application/vnd.ms-powerpoint'; break; case 'jpg': $type[0] = 'image/jpg'; $type[1] = 'image/jpeg'; $type[2] = 'image/pjpeg'; break; case 'gif': $type[0] = 'image/gif'; break; case 'png': $type[0] = 'image/png'; break; case 'bmp': $type[0] = 'image/bmp'; break; case 'icon': $type[0] = 'image/x-ico'; break; case 'font': $type[0] = 'application/x-font-ttf'; break; } return $type; } /** * Validate file size. * @param string $postVar Element name. * @param string $value Element value. * @param string $error Error message. * @return string Error message. */ function validate_file_size($postVar, $value, $error) { $errorMsg = ''; if ( is_array( $postVar['name'] ) ) { $totalFiles = count( $postVar['name'] ); for ( $i = 0; $i < $totalFiles; $i++ ) { if ( $postVar['name'][ $i ] ) { if ( $postVar['size'][ $i ] > $value ) { $errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>'; } } } } else { if ( $postVar['size'] > $value ) { $errorMsg .= $error.' ('.$postVar['name'].')<br>'; } } return $errorMsg; } /** * Validate image height and width. * @param string $postVar Element name. * @param string $value Element value. * @param string $error Error message. * @return string Error message. */ function validate_image_height_width($postVar, $value, $error) { $errorMsg = ''; if ( isset( $value ) ) { $found = strpos( $value, ',' ); if ( false === $found ) { $options[0] = $value; } else { $options = explode( ',', $value ); $W = $options[0]; $H = $options[1]; } } if ( is_array( $postVar['name'] ) ) { $totalFiles = count( $postVar['name'] ); for ( $i = 0; $i < $totalFiles; $i++ ) { if ( $postVar['name'][ $i ] ) { list($width, $height) = getimagesize( $postVar['tmp_name'][ $i ] ); if ( ($height > $W || $width > $H) && $postVar['tmp_name'][ $i ] ) { $errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>'; } } } } else { list($width, $height) = getimagesize( $postVar['tmp_name'] ); if ( ($height < $H || $width < $W) && $postVar['tmp_name'] ) { $errorMsg .= $error.' ('.$postVar['name'].')<br>'; } } return $errorMsg; } /** * Available phone type. * @param string $country Country name. * @return array Phone type expressions. */ function available_phone_type($country) { switch ( $country ) { case 'in': // India. $type[0] = '/^[0-9]{6,10}$/'; // (+91)[022]111111. $type[1] = '/^[\(][\+][0-9]{2}[\)][\[][0-9]{3,5}[\]][0-9]{6,10}$/'; // +91022111111. $type[2] = '/^[\+][0-9]{2}[0-9]{3,5}[0-9]{6,10}$/'; // 91-111111. $type[3] = '/^[0-9]{2}[\-][0-9]{6,10}$/'; break; case 'br': // Brazil. $type[0] = '/^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$/'; break; case 'fr': // France. $type[0] = '/^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$/'; break; case 'us': // US. $type[0] = '/^[\(][0-9]{3}[\)][0-9]{3}[\-][0-9]{4}$/'; break; case 'sw': // Swedish. $type[0] = '/^(([+][0-9]{2}[ ][1-9][0-9]{0,2}[ ])|([0][0-9]{1,3}[-]))(([0-9]{2}([ ][0-9]{2}){2})|([0-9]{3}([ ][0-9]{3})*([ ][0-9]{2})+))$/'; break; } return $type; } } }
| ver. 1.4 |
Github
|
.
| PHP 7.3.33 | Generation time: 0.08 |
proxy
|
phpinfo
|
Settings