prepare("SELECT id, name, email FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user) { // Verwijder eventuele eerdere openstaande reset tokens voor dit e-mailadres $stmtClean = $db->prepare("DELETE FROM password_resets WHERE email = ? AND used_at IS NULL"); $stmtClean->execute([$email]); // Genereer veilig uniek token $token = bin2hex(random_bytes(32)); $expiresAt = date('Y-m-d H:i:s', strtotime('+1 hour')); $stmtInsert = $db->prepare(" INSERT INTO password_resets (email, token, expires_at) VALUES (?, ?, ?) "); $stmtInsert->execute([$email, $token, $expiresAt]); // Bouw herstel-URL $baseUrl = rtrim(APP_URL, '/'); $resetUrl = "{$baseUrl}/auth/reset-password.php?token={$token}"; // Verstuur herstelmail via de nieuwe FocizMailer $mailResult = FocizMailer::sendPasswordResetEmail($user['email'], $user['name'], $resetUrl); if (!$mailResult['success']) { error_log("Fout bij verzenden wachtwoordherstel mail naar {$email}: " . ($mailResult['error'] ?? 'Onbekend')); } } // Anti-enumeratie: Toon altijd succes ongeacht of het e-mailadres bestaat $submitted = true; } catch (Throwable $e) { error_log("Wachtwoord vergeten fout: " . $e->getMessage()); $error = "Er is een technische fout opgetreden. Probeer het over enkele ogenblikken opnieuw."; } } } $pageTitle = "Fociz — Wachtwoord Vergeten"; ?> <?= htmlspecialchars($pageTitle) ?>

Wachtwoord Vergeten?

Geen probleem. Vul uw e-mailadres in en we sturen u een veilige herstellink.

Herstellink verzonden! Als het opgegeven e-mailadres bij ons bekend is, ontvangt u binnen enkele ogenblikken een e-mail met instructies om uw wachtwoord opnieuw in te stellen.

💡 Tip: Heeft u na enkele minuten nog niets ontvangen?

  • Controleer uw map met Ongewenste e-mail of Spam.
  • Controleer of u het juiste e-mailadres heeft ingevuld.
Terug naar Inloggen
Terug naar Inloggen
Beveiligd met end-to-end authenticatie • Fociz 2026