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
forgot_password.php
60 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
<?php
include ('../../incl/dbconnect.php');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = trim($_POST['email']);
// hämta användaren baserat på e-post
$stmt = $dbconn->prepare("SELECT * FROM Users_slutprojekt WHERE email = :email LIMIT 1");
$stmt->execute([':email' => $email]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user) {
// generera token och ställ in utgångstid
$token = bin2hex(random_bytes(16));
$expires = date("Y-m-d H:i:s", time() + 900);
// uppdatera användarens återställningsuppgifter
$stmt = $dbconn->prepare("UPDATE Users_slutprojekt SET password_reset_token = :token, password_reset_expires = :expires WHERE user_id = :id");
$stmt->execute([':token' => $token, ':expires' => $expires, ':id' => $user['user_id']]);
// skicka återställningslänk via e-post
$reset_link = "https://labb.vgy.se/~filipfg/webbsrvprg/projekt/slutprojekt/reset_password.php?token=" . $token;
$subject = "Återställ ditt lösenord";
$message = "Hej\n\nKlicka på följande länk för att återställa ditt lösenord. Länken är giltig i 15 minuter:\n$reset_link\n";
$headers = "From: no-reply@yourdomain.com";
mail($email, $subject, $message, $headers);
$success = "Ett e-postmeddelande med instruktioner har skickats till din e-post.";
} else {
$error = "Ingen användare hittades med den e-postadressen.";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Glömt 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>"; ?>
<form action="" method="post">
<label>Ange din e-post:</label><br>
<input type="email" name="email" required><br><br>
<input type="submit" value="Skicka återställningslänk">
</form>
<p><a href="login.php">Tillbaka till inloggning</a></p>
<script src="darkmode.js"></script>
</body>
</html>