diff options
Diffstat (limited to 'login.php')
| -rw-r--r-- | login.php | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/login.php b/login.php new file mode 100644 index 0000000..cdd65e2 --- /dev/null +++ b/login.php @@ -0,0 +1,48 @@ +<?php +session_start(); + +$username = $_POST["username"]; +$password = $_POST["password"]; +$remember = $_POST["remember"]; + +if ($remember === null) + $remember = false; +elseif ($remember === "on") + $remember = true; + +if (in_array(null, [$username, $password, $remember], true) === true || in_array('', [$username, $password, $remember], true) === true) { + header("HTTP/1.0 400 No Teapot here :("); + header("Location: index.php"); + $_SESSION['error'] = "You didn't specify username or password or remember option"; + exit(); +} + +require_once "dbCredentials.php"; + +$pdo = new PDO("mysql:dbname=$dbName;host=$dbHost;charset=utf8mb4", $dbUser, $dbPassword); +$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); +$stmt = $pdo->prepare("SELECT `firstname`, `lastname`, `email`, `user_type` FROM `cms_user` WHERE `login`=:login AND `password`=:password"); +$stmt->execute(["login" => $username, "password" => $password]); +$user = $stmt->fetchAll(PDO::FETCH_ASSOC); +if (count($user) === 0) { + header("HTTP/1.0 403 No Teapot for you :)"); + header("Location: index.php"); + $_SESSION['error'] = "Wrong username or password"; + exit(); +} +$user = $user[0]; +$_SESSION['firstname'] = $user['firstname']; +$_SESSION['lastname'] = $user['lastname']; +$_SESSION['email'] = $user['email']; +$_SESSION['user_type'] = $user['user_type']; +$_SESSION['logged'] = true; + +if ($remember === true) { + setcookie("username", $username, time() + 60 * 60 * 24 * 365); +} else { + unset($_COOKIE['username']); + setcookie('username', '', time() - 3600); +} + +header("HTTP/1.0 200 Teapot for you :]"); +header("Location: main.php"); |
