Ik heb registratie pagina aangepast en sindsdien krijg ik onderstaande foutmelding:

Er is een fout opgetreden:
- Foutnummer: 2
- Bericht: Cannot modify header information - headers already sent by (SalonGrip/includes/header.php:12)
- Bestand: SalonGrip/register.php
- Regellijn: 86
- Tijd: 2025-01-29 21:16:50

Er is niets veranderd aan de header pagina en bovenstaande foutmelding krijg ik alleen, na het invullen van het registratieformulier.
Wat ik al heb gecontroleerd aan de registratie pagina:
Er is geen witte en/of spatie ruimte ergens die ik kan vinden.
Er wordt geen output gestuurd voor de functie header
header("Location: wachtkamer.php");

Ik heb dus geen idee waar ik het moet nog gaan zoeken en hopelijk hebben jullie nog tips voor mij!

Voor de volledigheid, zie hieronder de code van registratiepagina:

<?php
/*ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);*/
require_once 'includes/config.php'; // Verbind met de database
require_once 'includes/functions.php'; // Importeer functies
require_once 'includes/header.php'; // Voeg de header toe
$message = [];
$success = "";
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Input valideren
    $voornaam = sanitizeInput($_POST['voornaam']);
    $achternaam = sanitizeInput($_POST['achternaam']);
    $email = sanitizeInput($_POST['email']);
    $mobiel = sanitizeInput($_POST['mobiel']);
    $wachtwoord = $_POST['wachtwoord'];
    $bevestig_wachtwoord = $_POST['bevestig_wachtwoord'];
    $kapperszaak = sanitizeInput($_POST['kapperszaak']);
    $straat = sanitizeInput($_POST['straat']);
    $postcode = sanitizeInput($_POST['postcode']);
    $plaats = sanitizeInput($_POST['plaats']);
    // Controleer of velden ingevuld zijn
    if (empty($voornaam) || empty($achternaam) || empty($email) || empty($mobiel) || empty($wachtwoord) || empty($bevestig_wachtwoord) || empty($kapperszaak) || empty($straat) || empty($postcode) || empty($plaats)) {
        $message[] = "Alle velden zijn verplicht.";
    }
    // Controleer wachtwoord op sterkte
    $wachtwoordFouten = valideerWachtwoord($wachtwoord);
    if (!empty($wachtwoordFouten)) {
        $message = array_merge($message, $wachtwoordFouten);
    }
    // Controleer of wachtwoord en bevestiging overeenkomen
    if ($wachtwoord !== $bevestig_wachtwoord) {
        $message[] = "Wachtwoorden komen niet overeen.";
    }
    if (empty($message)) {
        // Controleer of e-mail of mobiel nummer al bestaat
        $stmt = $mysqli->prepare("SELECT id FROM users WHERE email = ? OR mobielnummer = ?");
        $stmt->bind_param("ss", $email, $mobiel);
        $stmt->execute();
        $stmt->store_result();
        if ($stmt->num_rows > 0) {
            $message[] = "E-mailadres of mobiel nummer is al geregistreerd.";
        } else {
            $stmt->close();
            // Controleer of kapperszaak naam al bestaat
            $stmt = $mysqli->prepare("SELECT id FROM business WHERE name = ?");
            $stmt->bind_param("s", $kapperszaak);
            $stmt->execute();
            $stmt->store_result();
            if ($stmt->num_rows > 0) {
                $message[] = "Kapperszaak naam is al geregistreerd.";
            } else {
                $stmt->close();
                // Genereer wachtwoord-hash
                $passwordHash = password_hash($wachtwoord, PASSWORD_BCRYPT);
                // Voeg kapperszaak toe aan de database
                $volledig_adres = $straat . ", " . $postcode . ", " . $plaats;
                $stmt = $mysqli->prepare("INSERT INTO business (name, address) VALUES (?, ?)");
                $stmt->bind_param("ss", $kapperszaak, $volledig_adres);
                $stmt->execute();
                $businessId = $stmt->insert_id; // Haal ID op van de nieuwe kapperszaak
                $stmt->close();
                // Genereer verificatietoken en stel verificatiestatus in
                $verification_token = bin2hex(random_bytes(16));
                $verification_status = 0;
                // Voeg gebruiker toe aan de database
                $status = 'on hold';
                $role = 'owner';
                $stmt = $mysqli->prepare("INSERT INTO users (voornaam, achternaam, email, mobielnummer, password_hash, role, business_id, status, verification_status, verification_token) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
                $stmt->bind_param("ssssssisis", $voornaam, $achternaam, $email, $mobiel, $passwordHash, $role, $businessId, $status, $verification_status, $verification_token);
                if ($stmt->execute()) {
                    // Verzend verificatiemail
                    $to = $email;
                    $subject = 'Bevestig uw e-mailadres';
                    $message = "Beste $voornaam,\n\nBedankt voor uw registratie. Klik alstublieft op de onderstaande link om uw e-mailadres te bevestigen:\n\n";
                    $message .= "https://salongrip.nl/verify.php?token=$verification_token\n\n";
                    $message .= "Met vriendelijke groet,\nSalongrip";
                    // Stel de headers in
                    $headers = 'From: [email protected]' . "\r\n" .
                               'Reply-To: [email protected]' . "\r\n" .
                               'X-Mailer: PHP/' . phpversion();
                    // Verzend de e-mail
                    if (mail($to, $subject, $message, $headers)) {
                        $success = "Registratie succesvol! Controleer uw e-mail om uw registratie te bevestigen.";
                    } else {
                        $message[] = "Er is een fout opgetreden bij het verzenden van de verificatiemail.";
                    }
                    header("Location: wachtkamer.php");
                    exit();
                } else {
                    $message[] = "Er is een fout opgetreden bij het registreren van de gebruiker.";
                }
                $stmt->close();
            }
        }
    }
}
?>
Mohamed nvt op 30/01/2025 12:40:48

Ik geloof niet dat het hiermee te maken heeft, want ...

Mohamed nvt op 31/01/2025 00:06:44

Het klinkt misschien gek, maar ik denk dat het probleem enkel te maken heeft met ...

Graag gedaan, en volgende keer niet meer zo eigenwijs zijn. ;-)

Reageren