-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathValidation.php
78 lines (65 loc) · 2.38 KB
/
Validation.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
class Validation {
public $validations;
public static function verify($rules, $data)
{
$validation = new self;
foreach($rules as $field => $fieldRules) {
foreach($fieldRules as $rule) {
$fieldValue = $data[$field];
if($rule == 'confirmed') {
$validation->$rule($field, $fieldValue, $data["{$field}-confirmation"]);
}
elseif(str_contains($rule, ':')){
$tmp = explode(':', $rule);
$rule = $tmp[0];
$rule2 = $tmp[1];
$validation->$rule($rule2, $field, $fieldValue);
}
else {
$validation->$rule($field, $fieldValue);
}
}
}
return $validation;
}
private function required($field, $value) {
if(strlen($value == 0)){
$this->validations []= "$field é obrigatório.";
}
}
private function email($field,$value) {
if(!filter_var($value, FILTER_VALIDATE_EMAIL)){
$this->validations []= "O $field é inválido";
}
}
private function confirmed($field, $value, $fieldConfirmation) {
if(strlen($value != $fieldConfirmation)){
$this->validations []= "O $field de confirmação está diferente do $fieldConfirmation.";
}
}
private function min($minimum, $field, $value) {
if(strlen($value) <= $minimum){
$this->validations []= "A $field precisa ter no mínimo $minimum caracteres.";
}
}
private function max($maximum, $field, $value) {
if(strlen($value) >= $maximum){
$this->validations []= "A $field precisa ter no máximo $maximum caracteres.";
}
}
private function strong($field, $value){
if(!strpbrk($value, '!@#$%^&*()+_-[\];.,/?|')){
$this->validations []= "A $field precisa ter um caracter especial.";
}
}
private function range($field, $value, $minimum, $maximum) {
if(strlen($value < $minimum || strlen($value) > $maximum)){
$this->validations []= "A $field precisa ter entre $minimum e $maximum caracteres.";
}
}
public function failValidation() {
$_SESSION['validations'] = $this->validations;
return sizeof($this->validations) > 0;
}
}