Källkodsbrowser

change_password.php

62 lines UTF-8 Unix (LF)
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
<?php
require 'check_login.php';
require 
'db_connect.php';

$user_id $_SESSION['user_id'];
$msg '';

if (
$_SERVER['REQUEST_METHOD'] === 'POST') {
    
$old $_POST['old'] ?? '';
    
$new $_POST['new'] ?? '';

    try {
        
// Hämta användarens nuvarande lösenord-hash
        
$stmt $pdo->prepare("SELECT cus_pass FROM customer WHERE cus_id = ?");
        
$stmt->execute([$user_id]);
        
$user_data $stmt->fetch();

        if (
$user_data && password_verify($old$user_data['cus_pass'])) {
            
// Verifiera att det nya lösenordet inte är tomt
            
if (empty($new)) {
                
$msg "Det nya lösenordet får inte vara tomt.";
            } else {
                
// Hasha det nya lösenordet
                
$hashed_new_password password_hash($newPASSWORD_DEFAULT);
                
                
// Uppdatera lösenordet i databasen
                
$stmt $pdo->prepare("UPDATE customer SET cus_pass = ? WHERE cus_id = ?");
                
$stmt->execute([$hashed_new_password$user_id]);
                
$msg "Lösenordet har ändrats!";
            }
        } else {
            
$msg "Fel nuvarande lösenord.";
        }
    } catch (
\PDOException $e) {
        
error_log("Database error in change_password: " $e->getMessage());
        
$msg "Ett fel uppstod vid lösenordsbyte.";
    }
}
?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <title>Byt lösenord</title>
    <link rel="stylesheet" href="style.css">
</head>
<body class="center-container">
    <div class="box">
        <h2>Byt lösenord</h2>
        <?php if ($msg): ?>
            <p class="message <?= strpos($msg'Fel') !== false || strpos($msg'tomt') !== false 'error' 'success' ?>"><?= htmlspecialchars($msg?></p>
        <?php endif; ?>
        <form method="post">
            <input type="password" name="old" placeholder="Nuvarande lösenord" required>
            <input type="password" name="new" placeholder="Nytt lösenord" required>
            <button type="submit" class="btn">Byt lösenord</button>
        </form>
        <a href="user.php">Tillbaka till Min Sida</a>
    </div>
</body>
</html>