1 | <?php
|
---|
2 | require_once('./inc/common.php');
|
---|
3 |
|
---|
4 | /**
|
---|
5 | * Is the user submitted the form, fetch the user with those credentials.
|
---|
6 | */
|
---|
7 | if (($_SERVER['REQUEST_METHOD'] == 'POST')) {
|
---|
8 | $sql = '
|
---|
9 | select reviewer_id, reviewer_name
|
---|
10 | from reviewer
|
---|
11 | where reviewer_email = :email and reviewer_password = :password';
|
---|
12 | $stm = $conn->prepare($sql);
|
---|
13 | $stm->execute([
|
---|
14 | ':email' => strip_tags($_REQUEST["email"]),
|
---|
15 | ':password' => strip_tags($_REQUEST["password"]),
|
---|
16 | ]);
|
---|
17 | $user = $stm->fetch();
|
---|
18 |
|
---|
19 | /**
|
---|
20 | * If such user exists, create a temporary session (i.e. log the user in) and redirect to the Home page with the appropriate message.
|
---|
21 | */
|
---|
22 | if ($user) {
|
---|
23 | $_SESSION['is_reviewer'] = true;
|
---|
24 | $_SESSION['reviewer_id'] = $user['reviewer_id'];
|
---|
25 | $_SESSION['reviewer_name'] = $user['reviewer_name'];
|
---|
26 | header('Location: /?msg=logged_in');
|
---|
27 | exit;
|
---|
28 | } else {
|
---|
29 | /**
|
---|
30 | * If the credentials are not correct, still render the login form, but display an error message. For increased security, do not inform the user whether the email or password is incorrect.
|
---|
31 | */
|
---|
32 | $err = 'The provided credentials are incorrect.';
|
---|
33 | }
|
---|
34 | }
|
---|
35 |
|
---|
36 | $pageTitle = 'Sign in';
|
---|
37 | $pageSlug = 'login';
|
---|
38 |
|
---|
39 | require_once('./inc/head.php');
|
---|
40 | require_once('./inc/header.php');
|
---|
41 | ?>
|
---|
42 | <div class="container">
|
---|
43 | <h1 class="mt-5 text-center"><?= $pageTitle ?></h1>
|
---|
44 |
|
---|
45 | <div class="row justify-content-center mt-5">
|
---|
46 | <div class="col-md-8 col-lg-6 col-xl-5">
|
---|
47 | <div class="card shadow-sm p-3">
|
---|
48 | <?php if ((isset($err)) && (! empty($err))) { ?>
|
---|
49 | <div class="alert alert-danger" role="alert"><?= $err ?></div>
|
---|
50 | <?php } ?>
|
---|
51 |
|
---|
52 | <form action="?" method="POST">
|
---|
53 | <div class="mb-3">
|
---|
54 | <label for="email" class="form-label">Email</label>
|
---|
55 | <input type="email" id="email" name="email" class="form-control" value="<?= (isset($_REQUEST["email"])) ? strip_tags($_REQUEST["email"]) : '' ?>" aria-describedby="emailHelp" required>
|
---|
56 | <div id="emailHelp" class="form-text">Enter your email address.</div>
|
---|
57 | </div>
|
---|
58 | <div class="mb-3">
|
---|
59 | <label for="password" class="form-label">Password</label>
|
---|
60 | <input type="password" id="password" name="password" class="form-control" minlength="2" required>
|
---|
61 | </div>
|
---|
62 | <button type="submit" class="btn btn-success">Submit</button>
|
---|
63 | </form>
|
---|
64 | </div>
|
---|
65 | </div>
|
---|
66 | </div>
|
---|
67 | </div>
|
---|
68 | <?php
|
---|
69 | require_once('./inc/footer.php');
|
---|