PHP formulier, checklist checken

Status
Niet open voor verdere reacties.

BoukeWeening

Gebruiker
Lid geworden
3 apr 2007
Berichten
232
Ik heb nu onderstaand PHP formulier. Het is een machtigingsformulier. Nu moet het formulier alleen verstuurd worden als alles is ingevuld, ook de checkbox. Wat moet ik hier nog aan veranderen?


PHP:
						<?php
							session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
							 
							// E-mailadres van de ontvanger
							$mail_ontv = 'mailadres'; // <<<----- voer jouw e-mailadres hier in!

							// Speciale checks voor naam en e-mailadres
							if ($_SERVER['REQUEST_METHOD'] == 'POST')
							{
								// naam controle
								if (!preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
									$naam_fout = 1;
								// e-mail controle
								if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
										$email_fout = 1;
								// antiflood controle
								if (!empty($_SESSION['antiflood']))
								{
									$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
									$tijd = time() - $_SESSION['antiflood'];
									if($tijd < $seconde)
										$antiflood = 1;
								}
							}

							// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
							if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
							{
								if ($_SERVER['REQUEST_METHOD'] == 'POST')
								{
									if (!empty($naam_fout))
										echo '<p>Uw naam mag alleen letters bevatten.</p>';
									elseif (!empty($email_fout))
										echo '<p>Uw e-mailadres is niet juist.</p>';
									elseif (!empty($antiflood))
										echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
									else
										echo '<p>U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>';
								}
									
							  // HTML e-mail formlier
							  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
							  <p>
							  
								  <label for="naam">Naam:</label>
								  <input type="text" id="naam" name="naam" value="' . htmlspecialchars($_POST['naam']) . '" /><br />
								  
								  <label for="adres">Adres:</label>
								  <input type="text" id="adres" name="adres" value="' . htmlspecialchars($_POST['adres']) . '" /><br />
								  
								  <label for="postcode">Postcode:</label>
								  <input type="text" id="postcode" name="postcode" value="' . htmlspecialchars($_POST['postcode']) . '" /><br />
								  
								  <label for="Woonplaats">Woonplaats:</label>
								  <input type="text" id="woonplaats" name="woonplaats" value="' . htmlspecialchars($_POST['woonplaats']) . '" /><br />
								  								  
								  <label for="mail">E-mailadres:</label>
								  <input type="text" id="mail" name="mail" value="' . htmlspecialchars($_POST['mail']) . '" /><br />
								  
								  <label for="bedrag">Bedrag in Euro´s:</label>
								  <input type="text" id="bedrag" name="bedrag" value="' . htmlspecialchars($_POST['bedrag']) . '" /><br />
								  
								  <label for="rekeningnummer">Rekeningnummer:</label>
								  <input type="text" id="rekeningnummer" name="rekeningnummer" value="' . htmlspecialchars($_POST['rekeningnummer']) . '" /><br />
								  
								  <label for="bericht">Bericht:</label><br />
								  <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' . htmlspecialchars($_POST['bericht']) . '</textarea><br />
								 
								 <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 

								  
								  <input type="submit" name="submit" value=" Versturen " />
							  </p>
							  </form>';
							}
							// versturen naar
							else
							{      
							  // set datum
							  $datum = date('d/m/Y H:i:s');
								
							  $inhoud_mail = "===================================================\n";
							  $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
							  $inhoud_mail .= "===================================================\n\n";
							  
							  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
							  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
							  $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
							  $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
							  $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bericht:\n";
							  $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
								
							  $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
								
							  $inhoud_mail .= "===================================================\n\n";
							  
							  // --------------------
							  // spambot protectie
							  // ------
							  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
							  // ------
							  
							  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
							  
							  $headers = stripslashes($headers);
							  $headers = str_replace('\n', '', $headers); // Verwijder \n
							  $headers = str_replace('\r', '', $headers); // Verwijder \r
							  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
							  
							  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
							  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
							  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
							  
							  if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
							  {
								  // zorg ervoor dat dezelfde persoon niet kan spammen
								  $_SESSION['antiflood'] = time();
								  
								  echo '<h1>Het contactformulier is verzonden</h1>
								  
								  <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
							  }
							  else
							  {
								  echo '<h1>Het contactformulier is niet verzonden</h1>
								  
								  <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
							  }
							}
							?>
 
if(isset($_POST['checkbox'])) {
//checkbox is checked niet
} else {
//checkbox is niet checked (Als de checkbox niet gechecked is dan zal de form hem ook niet versturen)
}
 
Ik heb het script iets aangepast, maar het werkt nog niet allemaal. Alles is verplicht en alles moet verstuurd worden in de mail. Wat doe ik nog niet helemaal goed en hoe kan ik alles goed controleren.

(PS ben een beginner met PHP)

PHP:
<?php
							session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
							 
							// E-mailadres van de ontvanger
							$mail_ontv = 'mailadres'; // <<<----- voer jouw e-mailadres hier in!

							// Speciale checks voor naam en e-mailadres
							if ($_SERVER['REQUEST_METHOD'] == 'POST')
							{
								// naam controle
								if (!preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
									$naam_fout = 1;
								// e-mail controle
								if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
										$email_fout = 1;
								// antiflood controle
								if (!empty($_SESSION['antiflood']))
								{
									$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
									$tijd = time() - $_SESSION['antiflood'];
									if($tijd < $seconde)
										$antiflood = 1;
								}
							}

							// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
							if (($_SERVER['REQUEST_METHOD'] == 'POST' && (!empty($antiflood) || empty($_POST['naam']) || !empty($naam_fout) || empty($_POST['mail']) || !empty($email_fout) || empty($_POST['bericht']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
							{
								if ($_SERVER['REQUEST_METHOD'] == 'POST')
								{
									if (!empty($naam_fout))
										echo '<p>Uw naam mag alleen letters bevatten.</p>';
									elseif (!empty($email_fout))
										echo '<p>Uw e-mailadres is niet juist.</p>';
									elseif (!empty($antiflood))
										echo '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
									else
										echo '<p>U bent uw naam, e-mailadres, onderwerp of bericht vergeten in te vullen.</p>';
								}
									
							  // HTML e-mail formlier
							  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
							  <p>
							  
								  <label for="naam">Naam:</label>
								  <input type="text" id="naam" name="naam" value="' . htmlspecialchars($_POST['naam']) . '" /><br />
								  
								  <label for="adres">Adres:</label>
								  <input type="text" id="adres" name="adres" value="' . htmlspecialchars($_POST['adres']) . '" /><br />
								  
								  <label for="postcode">Postcode:</label>
								  <input type="text" id="postcode" name="postcode" value="' . htmlspecialchars($_POST['postcode']) . '" /><br />
								  
								  <label for="Woonplaats">Woonplaats:</label>
								  <input type="text" id="woonplaats" name="woonplaats" value="' . htmlspecialchars($_POST['woonplaats']) . '" /><br />
								  								  
								  <label for="mail">E-mailadres:</label>
								  <input type="text" id="mail" name="mail" value="' . htmlspecialchars($_POST['mail']) . '" /><br />
								  
								  <label class="margin" for"bedrag">Bedrag:</label>
								  <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
								  <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
								  <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" "id="bedrag" name="bedrag" value="' . htmlspecialchars($_POST['bedrag']) . '" /> euro p/m<br /><br />
								  
								  <label for="rekeningnummer">Rekeningnummer:</label>
								  <input type="text" id="rekeningnummer" name="rekeningnummer" value="' . htmlspecialchars($_POST['rekeningnummer']) . '" /><br />
								  
								  <label for="bericht">Bericht:</label><br />
								  <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' . htmlspecialchars($_POST['bericht']) . '</textarea><br />
								 
								  <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 

								  
								  <input type="submit" name="submit" value=" Versturen " />
							  </p>
							  </form>';
							}
							// versturen naar
							else
							{      
							  // set datum
							  $datum = date('d/m/Y H:i:s');
								
							  $inhoud_mail = "===================================================\n";
							  $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
							  $inhoud_mail .= "===================================================\n\n";
							  
							  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
							  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
							  $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
							  $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
							  $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bericht:\n";
							  $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
								
							  $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
								
							  $inhoud_mail .= "===================================================\n\n";
							  
							  // --------------------
							  // spambot protectie
							  // ------
							  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
							  // ------
							  
							  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
							  
							  $headers = stripslashes($headers);
							  $headers = str_replace('\n', '', $headers); // Verwijder \n
							  $headers = str_replace('\r', '', $headers); // Verwijder \r
							  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
							  
							  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
							  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
							  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
							  
							  if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
							  {
								  // zorg ervoor dat dezelfde persoon niet kan spammen
								  $_SESSION['antiflood'] = time();
								  
								  echo '<h1>Het contactformulier is verzonden</h1>
								  
								  <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
							  }
							  else
							  {
								  echo '<h1>Het contactformulier is niet verzonden</h1>
								  
								  <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
							  }
							}
							?>
 
ik heb het een beetje aan gepast, niet getest!
PHP:
<?PHP                           
// Speciale checks voor naam en e-mailadres
	if ($_SERVER['REQUEST_METHOD'] == 'POST')
	{
		// naam controle
		if (!empty($_POST['naam']) && !preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
			$error[] = '<p>Uw naam mag alleen letters bevatten.</p>';
		// e-mail controle
		if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
				$error = '<p>Uw e-mailadres is niet juist.</p>';
		// antiflood controle
		if (!empty($_SESSION['antiflood']))
		{
			$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
			$tijd = time() - $_SESSION['antiflood'];
			if($tijd < $seconde)
				$error = '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
		}
		if(!isset($_POST['machtiging'])) 
			$error[] = 'U moet de machteging nog checken';
	}

	// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
	if (($_SERVER['REQUEST_METHOD'] == 'POST' &&  isset($error) || empty($_POST['bericht']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
	{
		foreach( $error as $msg ) {
			echo $msg;
		}
// HTML e-mail formlier
	  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
	  <p>
	  
		  <label for="naam">Naam:</label>
		  <input type="text" id="naam" name="naam" value="' . htmlspecialchars($_POST['naam']) . '" /><br />
		  
		  <label for="adres">Adres:</label>
		  <input type="text" id="adres" name="adres" value="' . htmlspecialchars($_POST['adres']) . '" /><br />
		  
		  <label for="postcode">Postcode:</label>
		  <input type="text" id="postcode" name="postcode" value="' . htmlspecialchars($_POST['postcode']) . '" /><br />
		  
		  <label for="Woonplaats">Woonplaats:</label>
		  <input type="text" id="woonplaats" name="woonplaats" value="' . htmlspecialchars($_POST['woonplaats']) . '" /><br />
										  
		  <label for="mail">E-mailadres:</label>
		  <input type="text" id="mail" name="mail" value="' . htmlspecialchars($_POST['mail']) . '" /><br />
		  
		  <label class="margin" for"bedrag">Bedrag:</label>
		  <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
		  <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
		  <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" "id="bedrag" name="bedrag" value="' . htmlspecialchars($_POST['bedrag']) . '" /> euro p/m<br /><br />
		  
		  <label for="rekeningnummer">Rekeningnummer:</label>
		  <input type="text" id="rekeningnummer" name="rekeningnummer" value="' . htmlspecialchars($_POST['rekeningnummer']) . '" /><br />
		  
		  <label for="bericht">Bericht:</label><br />
		  <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' . htmlspecialchars($_POST['bericht']) . '</textarea><br />
		 
		  <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 

		  
		  <input type="submit" name="submit" value=" Versturen " />
	  </p>
	  </form>';
	}
	// versturen naar
	else
	{      
	  // set datum
	  $datum = date('d/m/Y H:i:s');
		
	  $inhoud_mail = "===================================================\n";
	  $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
	  $inhoud_mail .= "===================================================\n\n";
	  
	  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
	  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
	  $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
	  $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
	  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
	  $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
	  $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
	  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
	  $inhoud_mail .= "Bericht:\n";
	  $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
		
	  $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
		
	  $inhoud_mail .= "===================================================\n\n";
	  
	  // --------------------
	  // spambot protectie
	  // ------
	  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
	  // ------
	  
	  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
	  
	  $headers = stripslashes($headers);
	  $headers = str_replace('\n', '', $headers); // Verwijder \n
	  $headers = str_replace('\r', '', $headers); // Verwijder \r
	  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
	  
	  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
	  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
	  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
	  
	  if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
	  {
		  // zorg ervoor dat dezelfde persoon niet kan spammen
		  $_SESSION['antiflood'] = time();
		  
		  echo '<h1>Het contactformulier is verzonden</h1>
		  
		  <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
	  }
	  else
	  {
		  echo '<h1>Het contactformulier is niet verzonden</h1>
		  
		  <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
	  }
	}
	?>
 
Nu doet de hele pagina het niet meer... Ik heb nu dus dit:

PHP:
						<?php
							session_start(); // zorg ervoor dat session_start ALTIJD bovenaan ALLES van je pagina staat, anders werkt het niet!
							 
							// E-mailadres van de ontvanger
							$mail_ontv = 'mailadres'; // <<<----- voer jouw e-mailadres hier in!

							// Speciale checks voor naam en e-mailadres
							if ($_SERVER['REQUEST_METHOD'] == 'POST')
							{
								// naam controle
								if (!empty($_POST['naam']) && !preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
									$error[] = '<p>Uw naam mag alleen letters bevatten.</p>';
								// e-mail controle
								if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
										$error = '<p>Uw e-mailadres is niet juist.</p>';
								// antiflood controle
								if (!empty($_SESSION['antiflood']))
								{
									$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
									$tijd = time() - $_SESSION['antiflood'];
									if($tijd < $seconde)
										$error = '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
								}
								if(!isset($_POST['machtiging'])) 
									$error[] = 'U moet de machteging nog checken';
							}
						 
							// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
							if (($_SERVER['REQUEST_METHOD'] == 'POST' &&  isset($error) || empty($_POST['bericht']))) || $_SERVER['REQUEST_METHOD'] == 'GET')
							{
								foreach( $error as $msg ) {
									echo $msg;
								}
						// HTML e-mail formlier
							  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
							  <p>
							  
								  <label for="naam">Naam:</label>
								  <input type="text" id="naam" name="naam" value="' . htmlspecialchars($_POST['naam']) . '" /><br />
								  
								  <label for="adres">Adres:</label>
								  <input type="text" id="adres" name="adres" value="' . htmlspecialchars($_POST['adres']) . '" /><br />
								  
								  <label for="postcode">Postcode:</label>
								  <input type="text" id="postcode" name="postcode" value="' . htmlspecialchars($_POST['postcode']) . '" /><br />
								  
								  <label for="Woonplaats">Woonplaats:</label>
								  <input type="text" id="woonplaats" name="woonplaats" value="' . htmlspecialchars($_POST['woonplaats']) . '" /><br />
																  
								  <label for="mail">E-mailadres:</label>
								  <input type="text" id="mail" name="mail" value="' . htmlspecialchars($_POST['mail']) . '" /><br />
								  
								  <label class="margin" for"bedrag">Bedrag:</label>
								  <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
								  <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
								  <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" "id="bedrag" name="bedrag" value="' . htmlspecialchars($_POST['bedrag']) . '" /> euro p/m<br /><br />
								  
								  <label for="rekeningnummer">Rekeningnummer:</label>
								  <input type="text" id="rekeningnummer" name="rekeningnummer" value="' . htmlspecialchars($_POST['rekeningnummer']) . '" /><br />
								  
								  <label for="bericht">Bericht:</label><br />
								  <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' . htmlspecialchars($_POST['bericht']) . '</textarea><br />
								 
								  <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 
						 
								  
								  <input type="submit" name="submit" value=" Versturen " />
							  </p>
							  </form>';
							}
							// versturen naar
							else
							{      
							  // set datum
							  $datum = date('d/m/Y H:i:s');
								
							  $inhoud_mail = "===================================================\n";
							  $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
							  $inhoud_mail .= "===================================================\n\n";
							  
							  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
							  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
							  $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
							  $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
							  $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
							  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
							  $inhoud_mail .= "Bericht:\n";
							  $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
								
							  $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
								
							  $inhoud_mail .= "===================================================\n\n";
							  
							  // --------------------
							  // spambot protectie
							  // ------
							  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
							  // ------
							  
							  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
							  
							  $headers = stripslashes($headers);
							  $headers = str_replace('\n', '', $headers); // Verwijder \n
							  $headers = str_replace('\r', '', $headers); // Verwijder \r
							  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
							  
							  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
							  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
							  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
							  
							  if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
							  {
								  // zorg ervoor dat dezelfde persoon niet kan spammen
								  $_SESSION['antiflood'] = time();
								  
								  echo '<h1>Het contactformulier is verzonden</h1>
								  
								  <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
							  }
							  else
							  {
								  echo '<h1>Het contactformulier is niet verzonden</h1>
								  
								  <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
							  }
							}
							?>
 
Misschien dat dit werkt, heb wel errors eruit gehaald.
Maar niet getest.
PHP:
<?PHP
// Speciale checks voor naam en e-mailadres
	if ($_SERVER['REQUEST_METHOD'] == 'POST')
	{
		$error = array();
		// naam controle
		if (!empty($_POST['naam']) || !preg_match('/[ a-zA-Z-]$/', $_POST['naam']))
			$error[] = '<p>Uw naam mag alleen letters bevatten.</p>';
		// e-mail controle
		if (function_exists('filter_var') && !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
				$error[] = '<p>Uw e-mailadres is niet juist.</p>';
		// antiflood controle
		if (!empty($_SESSION['antiflood']))
		{
			$seconde = 20; // 20 seconden voordat dezelfde persoon nog een keer een e-mail mag versturen
			$tijd = time() - $_SESSION['antiflood'];
			if($tijd < $seconde)
				$error[] = '<p>U mag slechts &eacute;&eacute;n bericht per ' . $seconde . ' seconde versturen.</p>';
		}
		if(!isset($_POST['machtiging'])) 
			$error[] = 'U moet de machteging nog checken';
	}

	// Kijk of alle velden zijn ingevuld - naam mag alleen uit letters bestaan en het e-mailadres moet juist zijn
	if (($_SERVER['REQUEST_METHOD'] == 'POST' &&  ( empty($_POST['bericht'])) || $_SERVER['REQUEST_METHOD'] == 'GET'))
	{
		if(isset($error)){
			foreach( $error as $msg ) {
				echo $msg;
			}
		}
if(!empty($_POST)) {
		extract($_POST);	  
	} else {
		$naam = '';
		$adres = '';
		$postcode = '';
		$woonplaats = '';
		$mail = '';
		$bedrag = '';
		$rekeningnummer = '';
		$bericht = '';
	}
	
// HTML e-mail formlier
	  echo '<form method="post" action="' . $_SERVER['REQUEST_URI'] . '" />
	  <p>
	  
		  <label for="naam">Naam:</label>
		  <input type="text" id="naam" name="naam" value="' .htmlspecialchars($naam). '" /><br />
		  
		  <label for="adres">Adres:</label>
		  <input type="text" id="adres" name="adres" value="' .htmlspecialchars($adres). '" /><br />
		  
		  <label for="postcode">Postcode:</label>
		  <input type="text" id="postcode" name="postcode" value="' .htmlspecialchars($postcode). '" /><br />
		  
		  <label for="Woonplaats">Woonplaats:</label>
		  <input type="text" id="woonplaats" name="woonplaats" value="' .htmlspecialchars($woonplaats). '" /><br />
										  
		  <label for="mail">E-mailadres:</label>
		  <input type="text" id="mail" name="mail" value="' .htmlspecialchars($mail). '" /><br />
		  
		  <label class="margin" for"bedrag">Bedrag:</label>
		  <input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">3,16 euro p/m<br />
		  <input type="radio" id="bedrag" class="submit_formulier" value="6,32 euro p/m" name="bedrag">6,32 euro p/m<br />
		  <input type="radio" id="bedrag" class="submit_formulier" value="vrij" name="bedrag"><input type="text" "id="bedrag" name="bedrag" value="' .htmlspecialchars($bedrag). '" /> euro p/m<br /><br />
		  
		  <label for="rekeningnummer">Rekeningnummer:</label>
		  <input type="text" id="rekeningnummer" name="rekeningnummer" value="' .htmlspecialchars($rekeningnummer). '" /><br />
		  
		  <label for="bericht">Bericht:</label><br />
		  <textarea id="bericht" name="bericht" rows="4" style="width: 430px;">' .htmlspecialchars($bericht). '</textarea><br />
		 
		  <input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  /> Hierbij machtig ik Stichting Festival316 om het aangegeven bedrag af te schrijven van bovengenoemd bankrekeningnummer.</p> 

		  
		  <input type="submit" name="submit" value=" Versturen " />
	  </p>
	  </form>';
	}
	// versturen naar
	else
	{      
	  // set datum
	  $datum = date('d/m/Y H:i:s');
		
	  $inhoud_mail = "===================================================\n";
	  $inhoud_mail .= "Ingevulde contact formulier " . $_SERVER['HTTP_HOST'] . "\n";
	  $inhoud_mail .= "===================================================\n\n";
	  
	  $inhoud_mail .= "Naam: " . htmlspecialchars($_POST['naam']) . "\n";
	  $inhoud_mail .= "Adres: " . htmlspecialchars($_POST['adres']) . "\n";
	  $inhoud_mail .= "Postcode: " . htmlspecialchars($_POST['postcode']) . "\n";
	  $inhoud_mail .= "Woonplaats: " . htmlspecialchars($_POST['woonplaats']) . "\n";
	  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
	  $inhoud_mail .= "Bedrag: " . htmlspecialchars($_POST['bedrag']) . "\n";
	  $inhoud_mail .= "Rekeningnummer: " . htmlspecialchars($_POST['rekeningnummer']) . "\n";
	  $inhoud_mail .= "E-mail adres: " . htmlspecialchars($_POST['mail']) . "\n";
	  $inhoud_mail .= "Bericht:\n";
	  $inhoud_mail .= htmlspecialchars($_POST['bericht']) . "\n\n";
		
	  $inhoud_mail .= "Verstuurd op " . $datum . " via het IP adres " . $_SERVER['REMOTE_ADDR'] . "\n\n";
		
	  $inhoud_mail .= "===================================================\n\n";
	  
	  // --------------------
	  // spambot protectie
	  // ------
	  // van de tutorial: http://www.phphulp.nl/php/tutorial/beveiliging/spam-vrije-contact-formulieren/340/
	  // ------
	  
	  $headers = 'From: ' . htmlspecialchars($_POST['naam']) . ' <' . $_POST['mail'] . '>';
	  
	  $headers = stripslashes($headers);
	  $headers = str_replace('\n', '', $headers); // Verwijder \n
	  $headers = str_replace('\r', '', $headers); // Verwijder \r
	  $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
	  
	  $_POST['onderwerp'] = str_replace('\n', '', $_POST['onderwerp']); // Verwijder \n
	  $_POST['onderwerp'] = str_replace('\r', '', $_POST['onderwerp']); // Verwijder \r
	  $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
	  
	  if (mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers))
	  {
		  // zorg ervoor dat dezelfde persoon niet kan spammen
		  $_SESSION['antiflood'] = time();
		  
		  echo '<h1>Het contactformulier is verzonden</h1>
		  
		  <p>Bedankt voor het invullen van het contactformulier. We zullen zo spoedig mogelijk contact met u opnemen.</p>';
	  }
	  else
	  {
		  echo '<h1>Het contactformulier is niet verzonden</h1>
		  
		  <p><b>Onze excuses.</b> Het contactformulier kon niet verzonden worden.</p>';
	  }
	}
	?>
 
Dit werkt zoals het nu lijkt inderdaad goed/beter. Maar hij neemt het bedrag nog niet goed mee... Wel als je het keuze vakje op vrij invullen zet en deze invult... maar dit gedeelte gaat nog niet goed. Zit hier sowieso wel een controle op?

Bedankt alvast voor je hulp!
 
Dit controleerd
PHP:
        if(!isset($_POST['machtiging'])) 
            $error[] = 'U moet de machteging nog checken';
Deze checkbox
HTML:
<input type="checkbox" name="machtiging" id="cfMachtiging" class="submit_formulier" value="Machtiging"  />

Die controle kunt je ook voor deze checkboxen gebruiken
HTML:
<input type="radio" id="bedrag" class="submit_formulier" value="3,16 euro p/m" name="bedrag">
Je moet alleen deze inputs allemaal een zelfde name-tag geven en met een javascript ervoor orgen dat er maar 1 van de checkboxen gekozen kan worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan