Webbserverprogrammering 1

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)
<?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($passwordPASSWORD_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>