@@ -44,16 +44,71 @@ public function store(){
44
44
$ values [$ name ] = $ value ;
45
45
};
46
46
47
+
48
+ //---------------------------------------------------------------------------------FORM VALIDATION
49
+
47
50
$ errors = [];
48
51
if (!Validation::validateEmail ($ values ["email " ])){
49
52
$ errors ["email " ] = "Please enter valid email adress. " ;
50
53
}
54
+ if (!Validation::validateString ($ values ["name " ], 2 , 50 )){
55
+ $ errors ["name " ] = "Name must be between 2 and 50 characters long. " ;
56
+ }
57
+ if (!Validation::validateString ($ values ["password " ], 6 , 50 )){
58
+ $ errors ["password " ] = "Password must be between 6 and 50 characters long. " ;
59
+ }
60
+ if (!Validation::compareStrings ($ values ["password " ], $ values ["password_confirmation " ])){
61
+ $ errors ["parrword_confirmation " ] = "Passwords do not match. " ;
62
+ }
63
+
64
+
65
+ //---------------------------------------------------------------------------------REDIRECT IF ERRORS PRESENT
51
66
52
67
if (!empty ($ errors )){
53
- loadView ("users/register/register " , $ user = $ values );
68
+ loadView ("users/register/register " , [
69
+ "user " => $ values ,
70
+ "errors " => $ errors ,
71
+ ]);
54
72
exit ;
55
73
};
56
- inspectValueANdHold ("Stored " );
57
74
75
+ //---------------------------------------------------------------------------------DB QUERY TO CHECK IF EMAIL ALREDY EXISTS
76
+
77
+ $ dbParams = [
78
+ 'email ' => $ values ['email ' ],
79
+ ];
80
+
81
+ $ query = "SELECT * FROM users WHERE email = :email " ;
82
+ $ user = $ this ->database ->query ($ query , $ dbParams )->fetchAll ();
83
+
84
+ if ($ user ){
85
+ $ errors ['email ' ] = "User with that email adress alredy exists. " ;
86
+ loadView ("users/register/register " , [
87
+ "user " => $ values ,
88
+ "errors " => $ errors ,
89
+ ]);
90
+ exit ;
91
+ };
92
+
93
+ //---------------------------------------------------------------------------------PUSH NEW USER INTO DB
94
+
95
+ $ dbParams = [];
96
+ foreach ($ values as $ name => $ value ) {
97
+ if ($ name === 'password ' ){
98
+ $ dbParams [$ name ] = password_hash ($ value , PASSWORD_DEFAULT );
99
+ } else if ($ name !== 'password_confirmation ' ){
100
+ $ dbParams [$ name ] = $ value ;
101
+ };
102
+ };
103
+
104
+ $ query = "INSERT INTO users (email, name, password, city, state) VALUES (:email, :name, :password, :city, :state) " ;
105
+ $ this ->database ->query ($ query , $ dbParams );
106
+
107
+
108
+ //--------------------------------------------------------------------------------REDIRECT NEW USER
109
+
110
+ redirect ("/ " );
111
+
112
+
58
113
}
59
114
}
0 commit comments