getConnection(); $user = null; try { $stmt = $db->prepare("SELECT user_id, email, full_name, phone, city FROM users WHERE user_id = ?"); $stmt->execute([$user_id]); $user = $stmt->fetch(PDO::FETCH_ASSOC); } catch (PDOException $e) { $error = "Ошибка загрузки данных: " . $e->getMessage(); } if (!$user) { header('Location: login.php?error=user_not_found'); exit(); } $update_errors = $_SESSION['update_errors'] ?? []; $update_success = $_SESSION['update_success'] ?? ''; unset($_SESSION['update_errors']); unset($_SESSION['update_success']); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $full_name = trim($_POST['fio'] ?? ''); $city = trim($_POST['city'] ?? ''); $phone = trim($_POST['phone'] ?? ''); $password = $_POST['password'] ?? ''; $confirm_password = $_POST['confirm-password'] ?? ''; $errors = []; if (empty($full_name) || strlen($full_name) < 3) { $errors[] = 'ФИО должно содержать минимум 3 символа'; } if (empty($city) || strlen($city) < 2) { $errors[] = 'Введите корректное название города'; } if (empty($phone) || !preg_match('/^(\+7|8)[\s-]?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}$/', $phone)) { $errors[] = 'Введите корректный номер телефона'; } if (!empty($password)) { if (strlen($password) < 6) { $errors[] = 'Пароль должен содержать минимум 6 символов'; } if ($password !== $confirm_password) { $errors[] = 'Пароли не совпадают'; } } if (empty($errors)) { try { if (!empty($password)) { $password_hash = password_hash($password, PASSWORD_DEFAULT); $stmt = $db->prepare(" UPDATE users SET full_name = ?, phone = ?, city = ?, password_hash = ?, updated_at = CURRENT_TIMESTAMP WHERE user_id = ? "); $stmt->execute([$full_name, $phone, $city, $password_hash, $user_id]); } else { $stmt = $db->prepare(" UPDATE users SET full_name = ?, phone = ?, city = ?, updated_at = CURRENT_TIMESTAMP WHERE user_id = ? "); $stmt->execute([$full_name, $phone, $city, $user_id]); } $_SESSION['full_name'] = $full_name; $_SESSION['user_phone'] = $phone; $_SESSION['user_city'] = $city; $_SESSION['update_success'] = 'Профиль успешно обновлен!'; header('Location: profile.php'); exit(); } catch (PDOException $e) { $errors[] = 'Ошибка обновления: ' . $e->getMessage(); } } if (!empty($errors)) { $_SESSION['update_errors'] = $errors; header('Location: profile.php'); exit(); } } ?> AETERNA - Мой профиль

Ошибки:

Мой профиль

Управляйте своими данными и настройками аккаунта

РЕДАКТИРОВАНИЕ ПРОФИЛЯ

E-mail нельзя изменить