diff options
Diffstat (limited to 'includes/functions_user.php')
-rw-r--r-- | includes/functions_user.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/includes/functions_user.php b/includes/functions_user.php new file mode 100644 index 0000000..690350a --- /dev/null +++ b/includes/functions_user.php @@ -0,0 +1,31 @@ +<?php + +function username_exists(string $username): bool +{ + $sql = "SELECT * FROM users WHERE user_name = ?;"; + $result = Database::get()->query($sql, "s", $username); + + return !empty($result); +} + +function register_user(string $username, string $pass_hash) +{ + $sql = "INSERT INTO users(user_name, user_pass, user_date, user_level) VALUES(?, ?, NOW(), 0);"; + Database::get()->query($sql, "ss", $username, $pass_hash); +} + +function change_password(User $user, string $pass_hash) +{ + if (!Session::get()->is_signed_in()) { + trigger_error('You are not signed in.'); + return; + } + + if (Session::get()->get_current_user()->id != $user->id) { + trigger_error("You can't change another user's password."); + return; + } + + $sql = "UPDATE users SET user_pass = ? WHERE user_id = ?;"; + Database::get()->query($sql, "si", $pass_hash, $user->id); +}
\ No newline at end of file |