exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci");
} catch (PDOException $e) {
die("Błąd połączenia z bazą danych: " . $e->getMessage());
}
$user_id = $_SESSION['user_id'];
$error = '';
$success = '';
$link_expired = false;
// Pobranie danych użytkownika
try {
$stmt = $pdo->prepare("SELECT email, email_change_code, email_change_expires, new_email FROM users WHERE id = ?");
$stmt->execute([$user_id]);
$userData = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$userData) {
die("Nie znaleziono użytkownika");
}
} catch (PDOException $e) {
die("Błąd bazy danych: " . $e->getMessage() . "
Czy dodałeś kolumny email_change_code, email_change_expires i new_email do tabeli users?
Wykonaj w phpMyAdmin:
ALTER TABLE users\nADD COLUMN email_change_code VARCHAR(6) NULL,\nADD COLUMN email_change_expires DATETIME NULL,\nADD COLUMN new_email VARCHAR(255) NULL;"); } // Jeśli użytkownik nie ma kodu lub nowego emaila, przekieruj do żądania if (empty($userData['email_change_code']) || empty($userData['new_email'])) { header('Location: /account/settings/?error=' . urlencode('Link do zmiany emaila jest nieważny lub został już użyty.')); exit(); } // Sprawdzenie czy kod wygasł if (!empty($userData['email_change_expires'])) { if (strtotime($userData['email_change_expires']) < time()) { $link_expired = true; } } // Obsługa resend - wysyła kod na NOWY email if (isset($_GET['resend']) && $_GET['resend'] == '1') { $reset_code = str_pad(random_int(0, 999999), 6, '0', STR_PAD_LEFT); $reset_expires = date('Y-m-d H:i:s', strtotime('+15 minutes')); $update = $pdo->prepare("UPDATE users SET email_change_code = ?, email_change_expires = ? WHERE id = ?"); $update->execute([$reset_code, $reset_expires, $user_id]); require_once $_SERVER['DOCUMENT_ROOT'] . '/includes/smtp_helper.php'; $subject = "Nowy kod weryfikacyjny - Wspólnie"; $message = "
Twój nowy kod weryfikacyjny to:
Kod jest ważny przez 15 minut.
Adres email powiązany z Twoim kontem został pomyślnie zmieniony.
Jeśli to nie Ty zmieniłeś email, skontaktuj się z nami natychmiast!
Ten adres email został pomyślnie powiązany z Twoim kontem w serwisie Wspólnie.
Od teraz możesz logować się używając tego adresu email.
Wpisz 6-cyfrowy kod wysłany na nowy adres email
Formularz jest zablokowany. Kliknij "Wyślij kod ponownie" aby otrzymać nowy kod.