Login_handler.php (1957B) download
1<?php
2class Login_handler
3{
4 function login():bool{
5 if ($_SERVER["REQUEST_METHOD"] == "POST") {
6 // fetch data from the form pass to login_handler function
7 if(isset($_POST['email']) || !isset($_POST['password'])){
8 return ($this->authenticate($_POST['email'], $_POST['password']));
9 }
10 }
11 }
12 function authenticate(string $email, string $pwd) : bool
13 //this function return true when user is autheticated uses set_globals to set $_SESSION variables
14 {
15 //create a SQLDatabase class
16 $db = new Lollipop\SQLDatabase("86.92.67.21", "friedel", "hailiwa", "panda");
17 //create a Database object class, with the table User
18 $u = $db->get(User::class);
19
20 //check if the email exists in db
21 if(!$u->where($email)){
22 //email does not exist
23 return false;
24 }else{
25 if(password_verify($pwd, $u->password)){
26 //authenticated -> set $_SESSION variables
27 $this->set_globals($u, $db);
28 return true;
29 } else {
30 //password did not match
31 return false;
32 }
33 }
34 }
35
36 private function set_globals(Lollipop\DatabaseObject $u, Lollipop\SQLDatabase $db)
37 //this function sets Session variables which incluse
38 //email, first_name, last_name and array user_permissions
39 {
40 //start session and set
41 session_start();
42 $_SESSION['email'] = $u->email;
43 $_SESSION['first_name'] = $u->first_name;
44 $_SESSION['last_name'] = $u->last_name;
45
46 //get permissions form db and set sessions_permissions
47 $p = $db->all_where(Permission_user::class, array('id_user' => $u->id));
48 foreach($p as $permission){
49 $user_permissions[] = $permission->id;
50 }
51 $_SESSION['user_permissions'] = $user_permissions;
52 }
53}
54?>