Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. <?php
  2. class Validate{
  3. private $_passed = false,
  4. $_errors = array(),
  5. $_db = null;
  6. public function __construct(){
  7. $this->_db = DB::getInstance();
  8. }
  9.  
  10. public function check($source, $items = array()){
  11. foreach($items as $item => $rules){
  12. foreach($rules as $rule => $rule_value){
  13.  
  14. $value = trim($source[$item]);
  15. $item = escape($item);
  16.  
  17. if($rule == 'required' && empty($value)) {
  18. $this->addError("{$item} is required");
  19. } else if(!empty($value)) {
  20. switch($rule) {
  21. case 'min';
  22. if(strlen($value) < $rule_value) {
  23. $this->addError("{$item} must be a minimum of {$rule_value} characters.");
  24. }
  25. break;
  26. case 'max';
  27. if(strlen($value) > $rule_value) {
  28. $this->addError("{$item} must be a maximum of {$rule_value} characters.");
  29. }
  30. break;
  31. case 'matches';
  32. if($value != $source[$rule_value]) {
  33. $this->addError("{$rule_value} must match {$item}");
  34. }
  35. break;
  36. case 'unique':
  37. $check = $this->_db->get($rule_value, array($item, "=", $value));
  38. if($check->count()){
  39. $this->addError("{$item} already exists.");
  40. }
  41. break;
  42. }
  43. }
  44. }
  45. }
  46.  
  47. if(empty($this->_errors)) {
  48. $this->_passed = true;
  49. }
  50.  
  51. return $this;
  52. }
  53.  
  54. private function addError($error) {
  55. $this->_errors[] = $error;
  56. }
  57.  
  58. public function errors() {
  59. return $this->_errors;
  60. }
  61.  
  62. public function passed() {
  63. return $this->_passed;
  64. }
  65. }
  66. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement