-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.php
More file actions
98 lines (86 loc) · 3.85 KB
/
settings.php
File metadata and controls
98 lines (86 loc) · 3.85 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
<?php
session_start();
require 'config/db.php';
// Проверяем, вошел ли пользователь в систему
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
// Получаем текущие данные пользователя
$stmt = $pdo->prepare("SELECT name, email FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$user = $stmt->fetch();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST['update_name'])) {
$new_name = trim($_POST['name']);
if (!empty($new_name)) {
$stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");
$stmt->execute([$new_name, $_SESSION['user_id']]);
$_SESSION['success'] = "Имя успешно обновлено!";
header("Location: settings.php");
exit;
} else {
$_SESSION['error'] = "Имя не может быть пустым!";
}
}
if (isset($_POST['update_password'])) {
$old_password = $_POST['old_password'];
$new_password = $_POST['new_password'];
$confirm_password = $_POST['confirm_password'];
if (!empty($old_password) && !empty($new_password) && !empty($confirm_password)) {
if ($new_password !== $confirm_password) {
$_SESSION['error'] = "Пароли не совпадают!";
} else {
$stmt = $pdo->prepare("SELECT password FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$user_data = $stmt->fetch();
if (password_verify($old_password, $user_data['password'])) {
$hashed_password = password_hash($new_password, PASSWORD_DEFAULT);
$stmt = $pdo->prepare("UPDATE users SET password = ? WHERE id = ?");
$stmt->execute([$hashed_password, $_SESSION['user_id']]);
$_SESSION['success'] = "Пароль успешно изменен!";
header("Location: settings.php");
exit;
} else {
$_SESSION['error'] = "Старый пароль неверный!";
}
}
} else {
$_SESSION['error'] = "Заполните все поля!";
}
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Настройки</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body>
<div class="container">
<h1>Настройки</h1>
<?php if (isset($_SESSION['success'])): ?>
<p class="success"><?php echo $_SESSION['success']; unset($_SESSION['success']); ?></p>
<?php endif; ?>
<?php if (isset($_SESSION['error'])): ?>
<p class="error"><?php echo $_SESSION['error']; unset($_SESSION['error']); ?></p>
<?php endif; ?>
<h2>Изменение имени</h2>
<form method="POST">
<input type="text" name="name" value="<?php echo htmlspecialchars($user['name']); ?>" required>
<button type="submit" name="update_name">Обновить имя</button>
</form>
<h2>Изменение пароля</h2>
<form method="POST">
<input type="password" name="old_password" placeholder="Старый пароль" required>
<input type="password" name="new_password" placeholder="Новый пароль" required>
<input type="password" name="confirm_password" placeholder="Подтвердите пароль" required>
<button type="submit" name="update_password">Обновить пароль</button>
</form>
<a href="dashboard.php">Вернуться в панель управления</a>
</div>
</body>
</html>