#0001
#0002
#0003
#0004
#0005
#0006
#0007
#0008
#0009
#0010
#0011
#0012
#0013
#0014
#0015
#0016
#0017
#0018
#0019
#0020
#0021
#0022
#0023
#0024
#0025
#0026
#0027
#0028
#0029
#0030
#0031
#0032
#0033
#0034
#0035
#0036
#0037
#0038
#0039
#0040
#0041
#0042
#0043
#0044
#0045
#0046
#0047
#0048
#0049
#0050
#0051
#0052
#0053
#0054
#0055
#0056
#0057
#0058
#0059
#0060
#0061
#0062
#0063
#0064
#0065
#0066
#0067
#0068
#0069
#0070
#0071
#0072
#0073
#0074
#0075
#0076
#0077
#0078
#0079
#0080
#0081
#0082
#0083
#0084
#0085
#0086
#0087
#0088
#0089
#0090
#0091
#0092
#0093
#0094
#0095
#0096
#0097
#0098
#0099
#0100
#0101
#0102
#0103
#0104
#0105
#0106
#0107
#0108
#0109
#0110
#0111
#0112
#0113
#0114
#0115
#0116
#0117
#0118
#0119
#0120
#0121
#0122
#0123
#0124
#0125
#0126
#0127
#0128
#0129
#0130
#0131
#0132
#0133
#0134
#0135
#0136
#0137
#0138
#0139
#0140
#0141
#0142
|
<?php /* * Validation class. */ class validation {
/** * Class constants. * * @author Nesbert Hidalgo * @access public */ const FIELD_NAME = '@@field_name@@'; const VALUE = '@@value@@'; public function __construct(&$errors) { $this->errors = $errors; } /** * Base function to validate by boolean value. * * @author Nesbert Hidalgo * @access private * @param bool $bool required * @param string $field required * @param mixed $val required * @param string $msg optional * @param string $required optional * @return bool */ private function validate_field_by_bool($bool, $field, $val, $msg = null, $required = false) { switch ( true ) { case ( $required && $val && $bool ): case ( !$required && $val && $bool ): case ( !$required && !$val ): return true; break; default: $this->errors->add($field, $msg); return false; break; } } /** * Format error message by adding fieldname or value we needed * * @author Nesbert Hidalgo * @access private * @param string $field required * @param mixed $val required * @param string $msg required * @param string $default_msg required * @return string */ private function format_message($field, $val, $msg, $default_msg) { $message = $msg ? $msg : $default_msg; // check for fieldname and humanze it if ( strstr($message, self::FIELD_NAME) ) { $message = str_replace(self::FIELD_NAME, humanize($field), $message); } // check for value and insert it into the message if ( strstr($message, self::VALUE) ) { $message = str_replace(self::VALUE, $val, $message); } return $message; } /** * Validates that $val is not empty. * * @author Nesbert Hidalgo * @access public * @param string $field required * @param mixed $val required * @param string $msg optional default is "... is a required field." * @return bool */ public function validates_presence_of($field, $val, $msg = null) { return self::validate_field_by_bool(true, $field, trim($val), self::format_message($field, $val, $msg, self::FIELD_NAME." is a required field."), true); }
/** * Validates $val with a regular expression $pattern using preg_match(). * * @author Nesbert Hidalgo * @access public * @param string $field required * @param mixed $val required * @param string $msg optional default is "... is invalid." * @param bool $required default is false * @param string $pattern required regular expression * @return bool */ public function validates_format_of($field, $val, $msg = null, $required = false, $pattern = false) { return self::validate_field_by_bool(preg_match($pattern, $val), $field, $val, self::format_message($field, $val, $msg, self::FIELD_NAME." is invalid."), $required); } /** * Validates that $val is a valid email address. * * @author Nesbert Hidalgo * @access public * @param string $field required * @param mixed $val required * @param string $msg optional default is "... is an invalid email address." * @param bool $required optional default is false * @return bool */ public function validates_email_of($field, $val, $msg = null, $required = false) { return self::validate_field_by_bool(is_email($val), $field, $val, self::format_message($field, $val, $msg, self::FIELD_NAME." is an invalid email address."), $required); } /** * Validates that $val is numeric. * * @author Nesbert Hidalgo * @access public * @param string $field required * @param mixed $val required * @param string $msg optional default is "... is not a number." * @param bool $required optional default is false * @return bool */ public function validates_numericality_of($field, $val, $msg = null, $required = false) { return self::validate_field_by_bool(is_number($val), $field, $val, self::format_message($field, $val, $msg, self::FIELD_NAME." is not a number."), $required); } } ?>
|