-
Notifications
You must be signed in to change notification settings - Fork 0
/
Class.php
131 lines (95 loc) · 3.3 KB
/
Class.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
class User {
//privaatne muutuja, saan kasutada klassi sees
private $connection;
//funktsioon, mis käivitub siis kui
// on ! NEW User();
function __construct($mysqli){
// selle klassi muutuja
$this->connection = $mysqli;
}
function createUser($name, $lastname, $create_email, $password_hash, $age, $gender){
//teen objekti, et saata tagasi kas errori (id, message) või successi (message)
$response = new StdClass();
//kas selline email on juba olemas?
$stmt = $this->connection->prepare("SELECT id, email FROM users WHERE id =? AND email = ?");
$stmt->bind_param("is", $id, $create_email);
$stmt->execute();
//kas oli 1 rida andmeid
if($stmt->fetch()){
// saadan tagasi errori
$error = new StdClass();
$error->id = 0;
$error->message = "Sellise e-postiga kasutaja juba olemas!";
//panen errori responsile külge
$response->error = $error;
// pärast returni enam koodi edasi ei vaadata funktsioonis
return $response;
}
//*************************
//******* OLULINE *********
//*************************
//panen eelmise käsu kinni
$stmt->close();
$stmt = $this->connection->prepare("INSERT INTO users (name, lastname, email, password, age, gender) VALUES (?, ?, ?, ?, ?, ?)");
$stmt->bind_param("ssssis", $name, $lastname, $create_email, $password_hash, $age, $gender);
if($stmt->execute()){
// edukalt salvestas
$success = new StdClass();
$success->message = "Kasutaja edukalt salvestatud";
$response->success = $success;
}else{
// midagi läks katki
$error = new StdClass();
$error->id =1;
$error->message = "Midagi läks katki!";
//panen errori responsile külge
$response->error = $error;
}
$stmt->close();
//saada tagasi vastuse, kas success või error
return $response;
}
function loginUser($email, $password_hash){
$response = new StdClass();
//kas selline email on juba olemas?
$stmt = $this->connection->prepare("SELECT email FROM users WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
// ei ole sellist kasutajat - !
if(!$stmt->fetch()){
// saadan tagasi errori
$error = new StdClass();
$error->id = 0;
$error->message = "Sellise e-postiga kasutajat ei ole olemas!";
//panen errori responsile külge
$response->error = $error;
// pärast returni enam koodi edasi ei vaadata funktsioonis
return $response;
}
$stmt->close();
$stmt = $this->connection->prepare("SELECT id, email FROM users WHERE email=? AND password=?");
$stmt->bind_param("ss", $email, $password_hash);
$stmt->bind_result($id_from_db, $email_from_db);
$stmt->execute();
if($stmt->fetch()){
// edukalt sai kätte
$success = new StdClass();
$success->message = "Kasutaja edukalt sisse logitud";
$user = new StdClass();
$user->id = $id_from_db;
$user->email = $email_from_db;
$success->user = $user;
$response->success = $success;
}else{
// midagi läks katki
$error = new StdClass();
$error->id =1;
$error->message = "Vale parool!";
//panen errori responsile külge
$response->error = $error;
}
$stmt->close();
return $response;
}
} ?>