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']) { $errMsg = $mailResult['error'] ?? 'Mailserver fout'; error_log("Fout bij verzenden wachtwoordherstel mail naar {$email}: {$errMsg}"); $error = "De herstelmail kon niet worden verzonden via de mailserver: " . htmlspecialchars($errMsg); } else { $submitted = true; } } else { // In development omgeving geven we directe diagnostische feedback if (defined('APP_ENV') && APP_ENV === 'development') { $error = "Er is geen Fociz account gevonden met het e-mailadres '{$email}'. Controleer of dit e-mailadres correct is ingevoerd."; } else { // Anti-enumeratie op productie: toon altijd succes $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