getMessage());
}
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$userData = $stmt->fetch(PDO::FETCH_ASSOC);
$phoneCountryOptions = [
'+48' => 'Polska (+48)',
'+44' => 'Wielka Brytania (+44)',
'+49' => 'Niemcy (+49)',
'+33' => 'Francja (+33)',
'+34' => 'Hiszpania (+34)',
'+39' => 'Włochy (+39)',
'+31' => 'Holandia (+31)',
'+420' => 'Czechy (+420)',
'+421' => 'Słowacja (+421)',
'+1' => 'USA/Kanada (+1)'
];
$storedPhoneNumber = trim((string)($userData['phone_number'] ?? ''));
$currentPhoneCountryCode = '';
$currentPhoneNumber = $storedPhoneNumber;
if ($storedPhoneNumber !== '' && preg_match('/^(\+\d{1,4})\s*(.*)$/', $storedPhoneNumber, $matches)) {
$parsedCode = trim((string)$matches[1]);
$parsedLocal = trim((string)$matches[2]);
if (array_key_exists($parsedCode, $phoneCountryOptions)) {
$currentPhoneCountryCode = $parsedCode;
$currentPhoneNumber = $parsedLocal;
}
}
if (!$userData) {
session_destroy();
header('Location: /login/');
exit();
}
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/account_suspension.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/user_avatar.php';
$suspensionState = og_is_current_user_suspended($pdo);
$isSuspended = (bool)($suspensionState['is_suspended'] ?? false);
$suspendedReason = (string)($suspensionState['reason'] ?? '');
$suspendedUntil = (string)($suspensionState['suspended_until'] ?? '');
$profileFormDisabled = $isSuspended ? 'disabled' : '';
$avatarFile = og_get_user_avatar_file($pdo, (int)($_SESSION['user_id'] ?? 0));
if (!$avatarFile && !empty($_SESSION['profile_avatar_file'])) {
$avatarFile = trim((string)$_SESSION['profile_avatar_file']);
}
$avatarUrl = og_avatar_file_to_url($avatarFile);
$avatarInitial = og_avatar_initial((string)($userData['username'] ?? 'U'));
$displayFirstName = trim((string)($userData['first_name'] ?? ''));
$displayLastName = trim((string)($userData['last_name'] ?? ''));
$displayFullName = trim($displayFirstName . ' ' . $displayLastName);
if ($displayFullName === '') {
$displayFullName = (string)($userData['username'] ?? 'Użytkownik');
}
$displayNickname = (string)($userData['username'] ?? '');
?>
Informacje Profilowe | kontakt: wspolpraca@togethere.cloud
⚙️ Ustawienia Konta
✅ Dane osobowe zostały zaktualizowane!
✅ Zdjęcie profilowe zostało zaktualizowane!
❌ = htmlspecialchars($_GET['error']) ?>
Kliknij zdjęcie, aby dodać nowe
= htmlspecialchars($displayFullName, ENT_QUOTES, 'UTF-8') ?>
@= htmlspecialchars($displayNickname, ENT_QUOTES, 'UTF-8') ?>
= htmlspecialchars((string)($userData['email'] ?? ''), ENT_QUOTES, 'UTF-8') ?>
Avatar jest zapisywany jako kwadrat. W podglądzie widzisz okrągłą strefę docelową.
Przytnij zdjęcie profilowe
Przeciągnij obraz w obszarze kadru i ustaw skalę. Zapisany zostanie kwadrat z widocznym podglądem koła.
Upuść zdjęcie tutaj albo kliknij, aby wybrać
Dozwolone: JPG, PNG, GIF, WEBP. Maksymalny rozmiar wejściowy 10MB.
>
Wybierz plik, aby rozpocząć kadrowanie.