· 9 years ago · Nov 12, 2016, 05:42 PM
1<?php
2//class for validation user Input
3class Validate{
4 //in here we declare 3 property
5 //passed for check if passed true or false
6 private $_passed = false ,
7 //error for reyturn bunch of error
8 $_errors = array(),
9 //db is our connection for create new user
10 $_db = NULL;
11
12//now here we construct our connection for new user
13 public function __construct()
14 {
15 $this->_db = DB::getInstance();
16 }
17
18//our check method for validation we need 2 parameter
19//source which is POST or GET
20//items which is value
21 public function check($source,$items = array())
22 {
23 //now here items is username then we access to rule which like required
24 foreach ($items as $item => $rules) {
25 //then again we access to rules set like min => 2 so $rule_value is 2
26 foreach ($rules as $rule => $rule_value) {
27 //so now the value is teh item source : $_POST['username']
28 //and also for dont have any whitespace we use trim
29 $value =trim($source[$item]);
30 $item = escape($item);
31 //now we should create our condition
32 if ($rule === 'required' && empty($value)) {
33 $this->addError("{$item} is Required");
34
35 //now we use switch for other rules
36 }elseif (!empty($value)) {
37 switch ($rule) {
38 //check min
39 case 'min':
40 if (strlen($value) < $rule_value) {
41 $this->addError("{$item} must be minimum of {$rule_value} characters.");
42 }
43 break;
44 //check max
45 case 'max':
46 if (strlen($value) > $rule_value) {
47 $this->addError("{$itme} must be maximum of {$rule_value} characters.");
48 }
49 break;
50 case 'matches':
51 //here we say if value of matches which is password2 not equal
52 //to post value which is password1
53 if ($value != $source[$rule_value]) {
54 $this->addError("{$rule_value} Must be match to {$item}");
55 }
56 break;
57 case 'unique':
58 //now for unique value we use our get method from our DB class and
59 //it has 2 parameters first table , sec is where so
60 //table as we declare is rule_value users and where is
61 //$item which is username is = to $value which could be anythig
62
63 $check = $this->_db->get($rule_value,array(
64 $item , '=' , $value
65 ));
66 //if it has count means its exists
67 if ($check->count()) {
68 //so we bring error
69 $this->addError("{$item} is already exists");
70 }
71 break;
72 }
73 }
74 }
75 }
76 //if it has no error we make it true for passed
77 if (empty($this->_errors)) {
78 $this->_passed = true;
79 }
80 return $this;
81 }
82 //method for add error to item
83 private function addError($error){
84 $this->_errors[] = $error ;
85 }
86 //method for return errors
87 public function errors()
88 {
89 return $this->_errors;
90 }
91 //method for check passed and if its true make
92 //it true otherwise its always false
93 public function passed()
94 {
95 return $this->_passed;
96 }
97}
98
99
100 ?>