Show sourcecode
The following files exists in this folder. Click to view.
webbsrvprg/projekt/slutprojekt/
board_random.php
board_travel.php
board_vgy.php
create_comment.php
create_post.php
create_tables.php
darkmode.js
fetch_comments.php
fetch_posts.php
fetch_posts_random.php
forgot_password.php
index.php
login.php
nav.css
nav.php
post.php
register.php
reset_password.php
sql_inject.php
verify.php
reset_password.php
67 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
<?php
include ('../../incl/dbconnect.php');
if (!isset($_GET['token'])) {
die("Ogiltig länk.");
}
$token = $_GET['token'];
// hämta användare med matchande token
$stmt = $dbconn->prepare("SELECT * FROM Users_slutprojekt WHERE password_reset_token = :token LIMIT 1");
$stmt->execute([':token' => $token]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$user) {
die("Ogiltig token.");
}
// kontrollera om token har gått ut
if (strtotime($user['password_reset_expires']) < time()) {
die("Länken har gått ut.");
}
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
if ($password !== $confirm_password) {
$error = "lösenorden matchar inte.";
} else {
// hasha det nya lösenordet
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// uppdatera lösenordet och rensa återställningstoken
$stmt = $dbconn->prepare("UPDATE Users_slutprojekt SET password = :password, password_reset_token = NULL, password_reset_expires = NULL WHERE user_id = :id");
$stmt->execute([':password' => $hashed_password, ':id' => $user['user_id']]);
$success = "Ditt lösenord har uppdaterats. Du kan nu <a href='login.php'>logga in</a>.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Återställ lösenord</title>
<link rel="stylesheet" href="nav.css">
</head>
<body>
<?php include ('nav.php'); ?>
<h2>Återställ lösenord</h2>
<?php if(isset($error)) echo "<p style='color:red;'>$error</p>"; ?>
<?php if(isset($success)) { echo "<p style='color:green;'>$success</p>"; } else { ?>
<form action="" method="post">
<label>Nytt lösenord:</label><br>
<input type="password" name="password" required><br>
<label>Bekräfta nytt lösenord:</label><br>
<input type="password" name="confirm_password" required><br><br>
<input type="submit" value="Återställ lösenord">
</form>
<?php } ?>
<script src="darkmode.js"></script>
</body>
</html>