Ik ben bezig om een registreer pagina te maken alleen krijg ik telkens de zelfde foutmelding. ik hbe geen idee wat ik fout doe.

Kan iemand mij helpen?

de code is als volgt:

<?php 

//functie om wachtwoorden te genereren 
include_once('genereer_wachtwoord.fct.php'); 

//controleer of formulier verzonden 
if (!empty($_POST)) { 
    //genereer nieuw wachtwoord 
    $wachtwoord = genereer_wachtwoord(8); 
    //stel afzender en bericht op 
    $afzender = 'From: [email protected]' . $_SERVER['SERVER_NAME'] . ' <[email protected]' . $_SERVER['SERVER_NAME'] . '>'; 
    $onderwerp = 'Nieuw account'; 
    $bericht = 'Je gebruikersnaam is: 
    ' . $_POST['gebruikersnaam'] . ' 
    Je wachtwoord is: 
    ' . $wachtwoord; 
    //genereer hash 
    $wachtwoord = hash('sha256', $wachtwoord); 
    //query om nieuwe gebruiker in te voegen 
    //als gebruikersnaam al bestaat zal query vanzelf mislukken, omdat `gebruikersnaam` een unieke sleutel is 
    $sql = "INSERT INTO `gebruikers` 
    SET 
        `gebruikersnaam` = '" . mysqli_real_escape_string($link, $_POST['gebruikersnaam']) . "', 
        `wachtwoord` = '" . mysqli_real_escape_string($link, $wachtwoord) . "', 
        `email` = '" . mysqli_real_escape_string($link, $_POST['email']) . "' "; 
    //voer query uit 
    if (mysqli_query($link, $sql)) { 
        //stuur email 
        $verzonden = mail($_POST['email'], $onderwerp, $bericht, $afzender); 
    } 
    else { 
        //er is geen gebruiker 
        $gebruikersnaam_fout = TRUE; 
    } 
} 

?>

			
					<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Nieuwe gebruiker</title> 
</head> 
<body> 

<h1>Nieuwe gebruiker</h1> 

<?php 
if ($gebruikersnaam_fout === TRUE) { 
    echo '<p class="error">De ingevulde gebruikersnaam bestaat al.</p>'; 
} 
if ($verzonden === TRUE) { 
    echo '<p class="succes">Er is een nieuw account gemaakt en de gegevens zijn naar het opgegeven e-mailadres gestuurd.</p>'; 
} 
?> 

<form method="post"> 
<table> 
<tr><td>Gebruikersnaam:</td><td><input type="text" name="gebruikersnaam"></td></tr> 
<tr><td>E-mailadres:</td><td><input type="text" name="email"></td></tr> 
<tr><td></td><td><input type="submit" value="Maak account"></td></tr> 
</table> 
</form> 

</body> 
</html>


alvast bedankt!
Pas eerst maar eens de headers uit deze snippet toe:
http://wiki.phpbeginners.nl/index.php?title=De_juiste_mailheaders

Verder is $headers een betere naam voor de huidige variabele $afzender. Want headers zijn immers meer dan een afzender. Zorg ook dat je controleert of $verzonden true is. (if en else).

Nog even een puntje: Let er ook op dat als je query niet uitgevoerd wordt dat dit niet betekent dat er geen gebruiker gevonden is. Eigenlijk zou je op dit punt een [php]mysqli_error[/php] moeten tonen. (lijn 32)

Controlere of een record (een user bijv.) bestaat doe je met [php]mysqli_num_rows[/php].

Reageren