Show sourcecode
The following files exists in this folder. Click to view.
webbsrvprg/projects/slutprojekt/tabeller/
create_admin.php
skapa-tabeller.php
create_admin.php
107 lines UTF-8 Windows (CRLF)
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<?php
include('../../../dbconnection.php');
ob_clean();
try {
if ($_SERVER['REQUEST_METHOD'] === 'POST' &&
isset($_POST['username'], $_POST['password'], $_POST['email']) &&
!empty($_POST['username']) && !empty($_POST['password']) && !empty($_POST['email'])) {
$email = (trim($_POST['email']));
$användarnamn = (trim($_POST['username']));
$lösenord = password_hash(trim($_POST['password']), PASSWORD_DEFAULT);
$verification_code = bin2hex(random_bytes(16));
$stmt = $dbconn->prepare("SELECT * FROM users WHERE username = :username OR email = :email");
$stmt->bindParam(':username', $användarnamn);
$stmt->bindParam(':email', $email);
$stmt->execute();
if ($_POST['key'] == "admin123") {
if ($stmt->rowCount() > 0) {
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user['username'] === $användarnamn) {
echo "Användarnamnet används redan";
}
if ($user['email'] === $email) {
echo "E-postadressen används redan";
}
}
else {
$expires = date("Y-m-d H:i:s", time() + 900);
$sql = "INSERT INTO users (username, password, email, created_at, admin, is_verified, verification_code, verification_expires)
VALUES (:username, :password, :email, now(), 1, 0, :verification_code, :expires)";
$stmt = $dbconn->prepare($sql);
$stmt->bindParam(':username', $användarnamn);
$stmt->bindParam(':password', $lösenord);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':verification_code', $verification_code);
$stmt->bindParam(':expires', $expires);
$stmt->execute();
$subject = "Bekräfta din e-postadress";
$message = "
<html>
<head>
<title>Bekräfta din e-post</title>
</head>
<body>
<h2>Hej $användarnamn!</h2>
<p>Klicka på länken nedan för att bekräfta din e-postadress:</p>
<p><a href='https://labb.vgy.se/~davidng/webbsrvprg/projects/slutprojekt/verify.php?code=$verification_code'>Bekräfta min e-post</a></p>
</body>
</html> ";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8" . "\r\n";
$headers .= "From: no-reply@dindomän.com" . "\r\n";
mail($email, $subject, $message, $headers);
echo "Registrering lyckades";
echo "<br>";
echo "Ett verifierings-mail har skickats till $email";
}
}
else {
echo "fel admin nyckel";
}
}
}
catch(PDOException $e) {
echo $sql . "<br />" . $e->getMessage();
}
?>
<h1>Skapa Adminkonto</h1>
<form method="post">
<label for="username">Användarnamn:</label>
<input type="text" name="username" id="username" required> <br>
<label for="password">Lösenord:</label>
<input type="text" name="password" id="password" required> <br>
<label for="email">Epost:</label>
<input type="email" name="email" required> <br>
<br>
<label for="key">Admin Nyckel:</label>
<input type="text" name="key" required> <br>
<input type="submit" value="Skapa konto">
</form>
<br>
<p>Har du redan ett konto? <a href="login.php">Logga in</a></p>
</body>
</html>