-
Notifications
You must be signed in to change notification settings - Fork 1
/
process-new-admin.php
76 lines (55 loc) · 1.97 KB
/
process-new-admin.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
<?php
/*
* We process the admin login form here
*/
// Start from getting the hader which contains some settings we need
require_once 'includes/header.php';
// require the admins class which containes most functions applied to admins
require_once ROOT."../includes/classes/admin-class.php";
$admins = new Admins($dbh);
// check if the form is submitted
if (isset($_POST))
{
// If the form is submitted
// first we check if all fields are filled out
// In our case all fields are required, so we can just loop
$errors = array();
foreach($_POST as $key => $value)
{
if(empty($value) || trim($value) == '') {
$errors[$key] = "The field ".$key." should not be empty.";
}
$$key = $value;
}
// If there is any error we send back to the form
if (!empty($errors) || sizeof($errors) != 0)
{
session::set('errors', $errors);
$commons->redirectTo(SITE_PATH.'add-admin.php');
}
// Check if password are the same
if (!$admins->ArePasswordsSame($_POST['password'], $_POST['repassword']))
{
session::set('errors', ['The two passwords do not match.']);
$commons->redirectTo(SITE_PATH.'add-admin.php');
}
// From here you can unset the repassword field
// the password is in $_POST['password']
unset($_POST['repassword']);
// Now let's check if another admin is not using the new username already
if ($admins->adminExists($_POST['username']))
{
session::set('errors', ['This username is already in use by another admin.']);
$commons->redirectTo(SITE_PATH.'add-admin.php');
}
// We've checked everything,
// now we can CREATE the admin in the admins table
if (!$admins->addNewAdmin($username, $password))
{
session::set('errors', ['An error occured while saving the new admin.']);
$commons->redirectTo(SITE_PATH.'add-admin.php');
}
// Else we display a confirmation message
session::set('confirm', 'New admin added successfully!');
$commons->redirectTo(SITE_PATH.'add-admin.php');
}