Ik heb nu zoveel pogingen gedaan om op mijn gastenboek een controle te krijgen op de invulvelden. Oftewel schrijft hij dan geen berichten meer in de database, oftewel krijg ik een error, ...
Altijd wel iets mis.
Zou er iemand me kunnen helpen?

Het volledige schrijfgedeelte staat hieronder. Op de site moet GEEN controle komen.
Er staat ook wel een mailfunctie in, ik hoop dat die er kan blijven...

<?php

include("inc_connect.php"); //verbinding met de databse

if (empty($_POST)){
//bekijk of de pagina net geopend word, of er al bericht is gepost
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Gastenboek</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h2>Teken het gastenboek!</h2>
<form name="form1" method="post" action="<? echo($_SERVER["PHP_SELF"]); ?>">

<table border="0">
<tr align="left" valign="top">
<td align="right">Voornaam</td>
<td>
<input name="voornaam" type="text" id="voornaam" size="30"></td>
</tr>
<tr align="left" valign="top">
<td align="right">Achternaam</td>
<td>
<input name="achternaam" type="text" id="achternaam" size="30"></td>
</tr>
<tr align="left" valign="top">
<td align="right">e-mailadres</td>
<td>
<input name="site" type="text" id="site" size="30"></td>
</tr>
<tr align="left" valign="top">
<td align="right">Site</td>
<td>
<input name="email" type="text" id="email" size="30"></td>
</tr>
<tr align="left" valign="top">
<td align="right">Uw bijdrage:</td>
<td>
<textarea name="bijdrage" cols="45" rows="10"></textarea></td>
</tr>
<tr align="left" valign="top">
<td align="right">&nbsp;</td>
<td><input type="submit" name="Submit" value="Verzenden">
<input name="reset" type="reset" id="reset" value="Leegmaken">
<input name="datum" type="hidden" id="datum" value="<?php echo(date("$date"));?>"></td>
</tr>
</table>
</form>
<p><a href="gastenboek_lees.php">Bekijk alle bijdragen in het gastenboek</a></p>
</body>
</html>
<?
}else{
$query="INSERT INTO gastenboek1 (voornaam, achternaam, email, site, bijdrage, datum) ";
$query .= "VALUES ('";
$query .= $_POST["voornaam"] ."', '" ;
$query .= $_POST["achternaam"] ."', '" ;
$query .= $_POST["email"] ."', '" ;
$query .= $_POST["site"] ."', '" ;
$query .= $_POST["bijdrage"] ."', '";
$query .= $_POST["datum"] . "');" ;
$result = mysql_query($query) or die ("FOUT: " . mysql_error());

/*Emailadressen uit db halen */

$resultaat = mysql_query("SELECT email FROM users1") or die ("FOUT: ".mysql_error());

/* emailadressen in 1 variabele zetten gescheiden door komma's */
$i = 0 ;
while ($row = mysql_fetch_array($resultaat)){
if ($i == 0){
$emailadressen = $row['email'];
} else {
$emailadressen .= ", ".$row['email'];
}
$i++;
}

/* mailtje versturen */

$checkmail = mail("".$emailadressen."","Bericht in Gastenboek geplaatst door: ".$_POST['voornaam']." ".$_POST['achternaam']."","".$_POST['bijdrage']."");
if (!$checkmail){
echo "Fout bij versturen van een email...";
}
echo("<h2>Bedankt voor uw bijdrage!</h2>\n");
echo("De volgende gegevens zijn ingevoegd:<br>\n");
echo("Voornaam: <b>". $_POST["voornaam"] . "</b><br>");
echo("Achternaam: <b>". $_POST["achternaam"] . "</b><br>");
echo("E-mailadres: <b>". $_POST["email"] . "</b><br>");
echo("Site: <b>". $_POST["site"] . "</b><br>");
echo("Uw bijdrage: <b>". $_POST["bijdrage"] . "</b><br>");
echo("<hr><a href=\"gastenboek_schrijf.php\">Nog een bijdrage schrijven</a> |
<a href=\"gastenboek_lees.php\">Overzicht van alle bijdragen</a>");
}
?>
Wat moet ik dan in die 2de pagina (met verzending en controle) plaatsen? Ik heb het hieronder staande geprobeert, maar dan is er geen controle meer en geeft hij geen bericht meer weer van wat hij heeft geplaatst, dus blanco pagina.

<?
if($submit){
if(strlen($_POST["voornaam"] )==0){
$error_msg[] = "Uw moet een geldige voornaam opgeven!<br>";
}
if((strlen($_POST["voornaam"] )!=0) && (strlen($_POST["voornaam"] ) < 3)){
$error_msg[] .= "U voornaam moet minimaal uit 3 tekens bestaan!<br>";
}
if(strlen($_POST["achternaam"] )==0){
$error_msg[] = "Uw moet een geldige achternaam opgeven!<br>";
}
if((strlen($_POST["achternaam"] )!=0) && (strlen($_POST["voornaam"] ) < 3)){
$error_msg[] .= "U achternaam moet minimaal uit 3 tekens bestaan!<br>";
}
if(strlen($_POST["email"] )==0){
$error_msg[] .= "Vul astublief een geldig e-mail adres in!<br>";
}
if((strlen($_POST["email"] )!=0) && (!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", $_POST["email"] ))){ // email moet geldige constructie hebben, bv [email protected]
$error_msg[] .= "E-mail adres is ongeldig, vul dit correct in!<br>";
}
if(strlen($_POST["bijdrage"] )==0){
$error_msg[] .= "Vul een bericht in!<br>";
}
if((strlen($_POST["bijdrage"] )!=0) && (strlen($_POST["bijdrage"] ) < 5)){
$error_msg[] .= "Het bericht moet minimaal uit 5 tekens bestaan!<br>";
}
if($error_msg){ // als dingen niet correct zijn ingevult
echo "<font face=verdana size=1>";
echo "Uw bericht kon niet verzonden worden vanwege de volgende redenen: <br><br>";
for($i = 0, $j = 1; $i < 4; $i++, $j++){
if($error_msg[$i]){
echo $j . ". " . $error_msg[$i];
}
}
echo "<br>Ga <a href=javascript:history.go(-1)>terug</a> om het probleem te verhelpen.";
echo "</font>";
}else{

$query="INSERT INTO gastenboek1 (voornaam, achternaam, email, site, bijdrage, datum) ";
$query .= "VALUES ('";
$query .= $_POST["voornaam"] ."', '" ;
$query .= $_POST["achternaam"] ."', '" ;
$query .= $_POST["email"] ."', '" ;
$query .= $_POST["site"] ."', '" ;
$query .= $_POST["bijdrage"] ."', '";
$query .= $_POST["datum"] . "');" ;
$result = mysql_query($query) or die ("FOUT: " . mysql_error());

/*Emailadressen uit db halen */

$resultaat = mysql_query("SELECT email FROM users1") or die ("FOUT: ".mysql_error());

/* emailadressen in 1 variabele zetten gescheiden door komma's */
$i = 0 ;
while ($row = mysql_fetch_array($resultaat)){
if ($i == 0){
$emailadressen = $row['email'];
} else {
$emailadressen .= ", ".$row['email'];
}
$i++;
}

/* mailtje versturen */

$checkmail = mail("".$emailadressen."","Bericht in Gastenboek geplaatst door: ".$_POST['voornaam']." ".$_POST['achternaam']."","".$_POST['bijdrage']."");
if (!$checkmail){
echo "Fout bij versturen van een email...";
}
echo("<h2>Bedankt voor uw bijdrage!</h2>\n");
echo("De volgende gegevens zijn ingevoegd:<br>\n");
echo("Voornaam: <b>". $_POST["voornaam"] . "</b><br>");
echo("Achternaam: <b>". $_POST["achternaam"] . "</b><br>");
echo("E-mailadres: <b>". $_POST["email"] . "</b><br>");
echo("Site: <b>". $_POST["site"] . "</b><br>");
echo("Uw bijdrage: <b>". $_POST["bijdrage"] . "</b><br>");
echo("<hr><a href=\"gastenboek_schrijf.php\">Nog een bijdrage schrijven</a> |
<a href=\"gastenboek_lees.php\">Overzicht van alle bijdragen</a>");
}
}
?>
Ik snap het niet meer wat er nu nog fout kan zijn, misschien iemand anders en als niemand reageerd moet je het misschien gaan vragen op andere site's zoals :sitemasters.be en phpfreakz.nl
Sorry,

Remco
d

Reageren