Checkboxes en option boxes toevoegen aan PHP form

  • Onderwerp starter Onderwerp starter WP7
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

WP7

Nieuwe gebruiker
Lid geworden
15 aug 2011
Berichten
4
Hallo,

Ik ben bezig met een (html + php)aanvraagformulier nu wil ik in het aanvraagformulier checkbox/radiobuttons (man/vrouw) en option boxes met bijvoorbeeld (Burgerlijke Staat, salaris type etc) toevoegen. Hoe kan ik ervoor zorgen dat dit in de php file verzonden wordt naar mijn mail? Het form werkt al maar nu moet ik dus weten hoe ik ervoor kan zorgen dat ik ook de radiobuttons en option boxes kan koppelen aan die file.

Linkje naar de pagina waar het om gaat.

Bijvoorbaat dank! :thumb:

PHP:
<?php 


if(isset($_POST['email'])) {
	
	// Pas deze twee regels aan.
	$email_to = "12345678@hotmail.com";
	$email_subject = "Bericht van een bezoeker";
	
	
	function died($error) {
		// je foutbericht staat hier
		echo "Het spijt ons, vanwege een fout is het formulier niet verzonden. ";
		echo "Deze fout(en) tonen zich hieronder.<br /><br />";
		echo $error."<br /><br />";
		echo "Ga aub terug om de velden correct in te vullen.<br /><br />";
		die();
	}
	
	// validation expected data exists
	if(!isset($_POST['achternaam']) ||
		!isset($_POST['voornaam']) ||
		!isset($_POST['geb_datum']) ||
		!isset($_POST['adres']) ||
		!isset($_POST['huis_nr']) ||
		!isset($_POST['toevoeging']) ||
		!isset($_POST['postcode']) ||
		!isset($_POST['woonplaats']) ||
		!isset($_POST['email']) ||
		!isset($_POST['telephone']) ||
		!isset($_POST['rek_nummer']) ||
		!isset($_POST['netto_sal']) ||
		!isset($_POST['beroep']) ||
		!isset($_POST['telephone_mb'])) {
		died('Het spijt ons, er is een probleem opgetredn bij het verzenden van het formulier.');		
	}
	
	$achternaam = $_POST['achternaam']; // verplicht
	$voornaam = $_POST['voornaam']; // verplicht
	$adres = $_POST['adres']; // verplicht
	$geb_datum = $_POST['geb_datum']; // verplicht
    $huis_nr = $_POST['huis_nr']; // verplicht
	$email_from = $_POST['email']; // verplicht
	$postcode = $_POST['postcode']; // verplicht
	$rek_nummer = $_POST['rek_nummer']; // verplicht
	$netto_sal = $_POST['netto_sal']; // verplicht
	$toevoeging = $_POST['toevoeging']; // niet verplicht
	$woonplaats = $_POST['woonplaats']; // verplicht
	$beroep = $_POST['beroep']; // verplicht
	$telephone = $_POST['telephone']; // niet verplicht
	$telephone_mb = $_POST['telephone_mb']; // niet verplicht
	
	$error_message = "";
	$email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!eregi($email_exp,$email_from)) {
  	$error_message .= 'Het emailadres is niet geldig.<br />';
  }
  $string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$woonplaats)) {
  	$error_message .= 'De woonplaats is niet geldig.<br />';
  }
	$string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$voornaam)) {
  	$error_message .= 'De voornaam is niet geldig.<br />';
  }
  	$string_exp = "^[a-z .'-]+$";
  if(!eregi($string_exp,$beroep)) {
  	$error_message .= 'Het beroep is niet geldig.<br />';
  }
  $string_exp = "^[a-z .'-]+$";
 if(!eregi($string_exp,$achternaam)) {
  	$error_message .= 'De achternaam is niet geldig.<br />';
  }
    $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$rek_nummer)) {
  	$error_message .= 'Het rekeningnummer is niet geldig.<br />';
  }
      $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$geb_datum)) {
  	$error_message .= 'De geboortedatum is niet geldig.<br />';
  }
      $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$netto_sal)) {
  	$error_message .= 'Het netto salaris is niet geldig.<br />';
  }
  $string_exp = "^[0-9 .-]+$";
  if(!eregi($string_exp,$telephone)) {
  	$error_message .= 'Het telefoonnummer is niet geldig.<br />';
  }
  	$string_exp = "^[a-z0-9 .-]+$";
  if(!eregi($string_exp,$postcode)) {
  	$error_message .= 'De postcode is niet geldig.<br />';
  }
  if(strlen($error_message) > 0) {
  	died($error_message);
  }
	$email_message = "Aanvraag formulier.\n\n";
	
	function clean_string($string) {
	  $bad = array("content-type","bcc:","to:","cc:","href");
	  return str_replace($bad,"",$string);
	}
	
	$email_message .= "Achternaam: ".clean_string($achternaam)."\n";
	$email_message .= "Voorletter(s): ".clean_string($voornaam)."\n";
	$email_message .= "Geboortedatum: ".clean_string($geb_datum)."\n";
	$email_message .= "Adres: ".clean_string($adres)."\n";
	$email_message .= "Huisnummer: ".clean_string($huis_nr)."\n";
	$email_message .= "Toevoeging: ".clean_string($toevoeging)."\n";
	$email_message .= "Postcode: ".clean_string($postcode)."\n";
	$email_message .= "Woonplaats: ".clean_string($woonplaats)."\n";
	$email_message .= "Email: ".clean_string($email_from)."\n";
	$email_message .= "Telefoon(mobiel): ".clean_string($telephone_mb)."\n";
	$email_message .= "Telefoon(prive): ".clean_string($telephone)."\n";
	$email_message .= "Rekeningnummer: ".clean_string($rek_nummer)."\n";
	$email_message .= "Netto Salaris: ".clean_string($netto_sal)."\n";
	$email_message .= "Beroep: ".clean_string($beroep)."\n";

	
	
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>

<!-- Creeer je eigen succes pagina hier -->

Bedankt voor uw bericht. U krijgt zo spoedig mogelijk een reactie.

<?
}
?>
 
Laatst bewerkt:
Checkboxes en Radiobuttons worden gewoon meegezonden als je ze in de form opneemt.

Bijv:
HTML:
<input type="radiobuttom" name="geslacht" id="geslacht_man" value="man" /> Man
<input type="radiobuttom" name="geslacht" id="geslacht_vrouw" value="vrouw" /> Vrouw

Komt in PHP gewoon binnen als:
PHP:
$_POST['geslacht'];

Gekoppeld op naam, net als alle andere input elementen. Je moet alleen opletten dat je met radiobuttons dezelfde name gebruikt voor alle exclusieve opties. En dat een checkbox een unieke name moet hebben en dat een checkbox alleen in de $_POST verschijnt als hij aangevinkt is. Een niet aangevinkte checkbox wordt niet in $_POST gezet.
 
Ah super bedankt! :) Ik ga het even proberen! :thumb:
 
Succes en nog een laatste tip: het is mogelijk (en vrij simpel) om de value van een checkbox or radiobutton te wijzigen dus controleer altijd even of de gebruiker niet heeft zitten knoeien met je form als dat problemen op kan leveren. Nou lijkt het me niet zo'n punt als iemand "onzijdig" invult in zijn geslacht box als grapje maar als je mensen bijv. een bericht laat verwijderen is het verstandig om even te controleren of ze dat bericht wel geschreven hebben omdat ze ook de code kunnen veranderen naar iemand anders' bericht.
 
Succes en nog een laatste tip: het is mogelijk (en vrij simpel) om de value van een checkbox or radiobutton te wijzigen dus controleer altijd even of de gebruiker niet heeft zitten knoeien met je form als dat problemen op kan leveren. Nou lijkt het me niet zo'n punt als iemand "onzijdig" invult in zijn geslacht box als grapje maar als je mensen bijv. een bericht laat verwijderen is het verstandig om even te controleren of ze dat bericht wel geschreven hebben omdat ze ook de code kunnen veranderen naar iemand anders' bericht.
Ah ja het is gelukt, alleen ik wil nu die beveiliging eraf hebben want nu moet ieder veld ingevuld worden.

En dat is niet de bedoeling. :p
 
Je hebt de beveiliging er zelf op gezet :P Je moet controleren wat de waarde is als hij is ingezonden, anders niet:

PHP:
if ( isset ( $_POST['radiobutton'] ) ) ) {
  if ( $_POST['radiobutton'] == 'man' || $_POST['radiobutton'] == 'vrouw' ) {
    // goed
  }
  else {
    // foutmelding
  }
}
else {
  // niet ingevuld, maar dat mag dan blijkbaar :P
}
 
Je hebt de beveiliging er zelf op gezet :P Je moet controleren wat de waarde is als hij is ingezonden, anders niet:
Haha klopt maar het duizeld soms een beetje al die codes, en dan weet ik niet meer wat eruit moet en wat niet. Had perongeluk namelijk iets verwijderd eerst wat er niet uit moest en kreeg elke keer een error. Heb nu alles terug gezet zoals het stond, en ga nu de codes aanpassen hoe jij het voor hebt gedaan echt super bedankt voor je hulp! :thumb::cool:

Dat form is namelijk niet voor mij maar iemand anders, en terwijl ik juist alles had beveiligd wilde hij niet hebben dat er beveiliging op zat.:confused: Erg vervelend, want ik had juist aangeraden om het geheel juist goed te beveiligingen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan