/
Evil331
/
Apteka
Обзор
Документация
Войти
/
Evil331
/
Apteka
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
edit_profile.php
112 строк
5 KB
Evil6766
Add files via upload
31 май 2025, 17:06
Не верифицирован
31 май 2025, 17:06
667fe25
Код
Авторство
О чём код?
<?php require_once 'db_connect.php'; include 'header.php' if (!isset($_SESSION['user_id'])) { header("Location: login.php"); exit(); } $user_id = $_SESSION['user_id']; $errors = []; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $full_name = $_POST['full_name'] ?? ''; $phone = $_POST['phone'] ?? ''; $address = $_POST['address'] ?? ''; $current_password = $_POST['current_password'] ?? ''; $new_password = $_POST['new_password'] ?? ''; // Обновление основной информации $update_query = "UPDATE users SET full_name = ?, phone = ?, address = ? WHERE id = ?"; $stmt = $conn->prepare($update_query); $stmt->bind_param("sssi", $full_name, $phone, $address, $user_id); $stmt->execute(); // Если указан текущий и новый пароль, обновляем пароль if (!empty($current_password) && !empty($new_password)) { // Проверяем текущий пароль $check_query = "SELECT password_hash FROM users WHERE id = ?"; $stmt = $conn->prepare($check_query); $stmt->bind_param("i", $user_id); $stmt->execute(); $result = $stmt->get_result(); $user = $result->fetch_assoc(); if (password_verify($current_password, $user['password_hash'])) { if (strlen($new_password) >= 6) { $new_password_hash = password_hash($new_password, PASSWORD_DEFAULT); $update_password_query = "UPDATE users SET password_hash = ? WHERE id = ?"; $stmt = $conn->prepare($update_password_query); $stmt->bind_param("si", $new_password_hash, $user_id); $stmt->execute(); } else { $errors[] = "Новый пароль должен содержать минимум 6 символов."; } } else { $errors[] = "Текущий пароль указан неверно."; } } if (empty($errors)) { header("Location: profile.php"); exit(); } } // Загружаем текущие данные пользователя $query = "SELECT username, email, full_name, phone, address FROM users WHERE id = ?"; $stmt = $conn->prepare($query); $stmt->bind_param("i", $user_id); $stmt->execute(); $result = $stmt->get_result(); $user = $result->fetch_assoc(); ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Редактировать профиль - Y-Apteka</title> <link rel="stylesheet" href="style.css"> </head> <body> <section class="form-section" style="margin-top: 100px; text-align: center;"> <h2>Редактировать профиль</h2> <?php if (!empty($errors)): ?> <div style="color: red; margin-bottom: 20px;"> <?php foreach ($errors as $error): ?> <p><?php echo htmlspecialchars($error); ?></p> <?php endforeach; ?> </div> <?php endif; ?> <form action="edit_profile.php" method="POST" style="max-width: 300px; margin: 0 auto;"> <div style="margin-bottom: 10px;"> <label for="full_name">Полное имя:</label><br> <input type="text" id="full_name" name="full_name" value="<?php echo htmlspecialchars($user['full_name'] ?? ''); ?>" style="width: 100%; padding: 8px; box-sizing: border-box;"> </div> <div style="margin-bottom: 10px;"> <label for="phone">Телефон:</label><br> <input type="text" id="phone" name="phone" value="<?php echo htmlspecialchars($user['phone'] ?? ''); ?>" style="width: 100%; padding: 8px; box-sizing: border-box;"> </div> <div style="margin-bottom: 10px;"> <label for="address">Адрес:</label><br> <textarea id="address" name="address" style="width: 100%; padding: 8px; box-sizing: border-box;"><?php echo htmlspecialchars($user['address'] ?? ''); ?></textarea> </div> <div style="margin-bottom: 10px;"> <label for="current_password">Текущий пароль (для смены пароля):</label><br> <input type="password" id="current_password" name="current_password" style="width: 100%; padding: 8px; box-sizing: border-box;"> </div> <div style="margin-bottom: 10px;"> <label for="new_password">Новый пароль:</label><br> <input type="password" id="new_password" name="new_password" style="width: 100%; padding: 8px; box-sizing: border-box;"> </div> <button type="submit" style="background-color: #4CAF50; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer;">Сохранить изменения</button> </form> </section> <?php include 'footer.php'; ?> </body> </html>