-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchangerMotDePasse.php
More file actions
128 lines (126 loc) · 5.26 KB
/
changerMotDePasse.php
File metadata and controls
128 lines (126 loc) · 5.26 KB
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?php
include 'components/header.php';
include 'database/function.php';
$message = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$ancien = $_POST['ancien_mdp'] ?? '';
$nouveau = $_POST['nouveau_mdp'] ?? '';
$confirmer = $_POST['confirmer_mdp'] ?? '';
$id = $_SESSION['user']['id'] ?? null;
if ($id && !empty($ancien) && !empty($nouveau) && !empty($confirmer)) {
$utilisateur = getUtilisateurById($id);
if ($utilisateur && password_verify($ancien, $utilisateur['password'])) {
// Vérifier que le nouveau mot de passe est différent de l'ancien
if (password_verify($nouveau, $utilisateur['password'])) {
$message = '<div class="alert alert-danger">Le nouveau mot de passe ne doit pas être identique à l\'ancien.</div>';
} elseif ($nouveau === $confirmer) {
$nouveauMotDePasse = password_hash($nouveau, PASSWORD_DEFAULT);
changerMotDePasse($id, $nouveauMotDePasse);
$message = '<div class="alert alert-success">Le mot de passe a bien été modifié.</div>';
} else {
$message = '<div class="alert alert-danger">Les nouveaux mots de passe ne correspondent pas.</div>';
}
} else {
$message = '<div class="alert alert-danger">Ancien mot de passe incorrect.</div>';
}
} else {
$message = '<div class="alert alert-danger">Veuillez remplir tous les champs.</div>';
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Changer le mot de passe</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<style>
body {
min-height: 100vh;
background: linear-gradient(120deg, #e0eafc 0%, #cfdef3 100%);
display: flex;
flex-direction: column;
}
.password-card {
max-width: 420px;
margin: 60px auto 0 auto;
border-radius: 1.5rem;
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
background: rgba(255,255,255,0.95);
backdrop-filter: blur(8px);
padding: 2.5rem 2rem 2rem 2rem;
}
.password-card h2 {
font-weight: 700;
color: #0d6efd;
margin-bottom: 1.5rem;
}
.form-label {
font-weight: 500;
}
.btn-primary {
background: linear-gradient(90deg, #0d6efd 60%, #4e9af1 100%);
border: none;
font-weight: 600;
letter-spacing: 1px;
}
.btn-primary:hover {
background: linear-gradient(90deg, #4e9af1 0%, #0d6efd 100%);
}
.alert {
border-radius: 0.75rem;
}
</style>
</head>
<body>
<div class="container d-flex flex-column align-items-center justify-content-center" style="min-height: 80vh;">
<div class="password-card">
<h2 class="text-center">Changer le mot de passe</h2>
<?php if ($message) echo $message; ?>
<form action="" method="post" class="needs-validation" novalidate autocomplete="off">
<div class="mb-3">
<label for="ancien_mdp" class="form-label">Ancien mot de passe</label>
<input type="password" class="form-control" id="ancien_mdp" name="ancien_mdp" required>
<div class="invalid-feedback">
Veuillez entrer votre ancien mot de passe.
</div>
</div>
<div class="mb-3">
<label for="nouveau_mdp" class="form-label">Nouveau mot de passe</label>
<input type="password" class="form-control" id="nouveau_mdp" name="nouveau_mdp" required>
<div class="invalid-feedback">
Veuillez entrer un nouveau mot de passe.
</div>
</div>
<div class="mb-3">
<label for="confirmer_mdp" class="form-label">Confirmer le nouveau mot de passe</label>
<input type="password" class="form-control" id="confirmer_mdp" name="confirmer_mdp" required>
<div class="invalid-feedback">
Veuillez confirmer le nouveau mot de passe.
</div>
</div>
<button type="submit" class="btn btn-primary w-100">Changer le mot de passe</button>
</form>
</div>
</div>
<?php include 'components/footer.php'; ?>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
// Bootstrap validation
(() => {
'use strict';
const forms = document.querySelectorAll('.needs-validation');
Array.from(forms).forEach(form => {
form.addEventListener('submit', event => {
if (!form.checkValidity()) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
})();
</script>
</body>
</html>