Beste mensen,

Ik heb dus een formulier gemaakt in php en html waarvan ik de antwoorden graag door wil sturen naar een mailadres. Nu gaat alles met textboxen prima, maar de radiobuttons doen moeilijk, zij geven (wat je ook kiest) altijd een "1" door in de mail. Zie scriptjes hieronder. Hoe moet ik dit oplossen?

Formulier:

<?php
if (isset($_SESSION['vriendenvan_ouders_formdata'])) {
	$formdata = $_SESSION['vriendenvan_ouders_formdata'];
}else{
	$formdata = array();
}
?>

<html>
<form action="oudersverzenden.php" method="post">

<h2>Lidmaatschapsgegevens</h2>
	<ul>
    Duur lidmaatschap*<br />
    <input type="radio" name="duur" value="<?=@htmlentities($formdata['duur1'])?>"/> 1 jaar (minimaal €10)<br />
		<input type="radio" name="duur" value="<?=@htmlentities($formdata['duur2'])?>"/> 3 jaar (minimaal €25)<br /><br />
		Bedrag (vul een bedrag in waarmee u ons wil steunen)*<br />
    <input type="text" name="bedrag" value="<?= @htmlentities($formdata['bedrag']) ?>"/><br />
	</ul>
<h2>Persoonsgegevens</h2>
	<ul>    
		Aanhef*<br />
    <input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Dhr.<br />
		<input type="radio" name="aanhef" value="<?= @htmlentities($formdata['aanhef']) ?>"/>Mw.<br /><br />
    Voornaam*<br />
    <input type="text" name="voornaam" value="<?= @htmlentities($formdata['voornaam']) ?>"/><br /><br />
    Achternaam*<br />
		<input type="text" name="achternaam" value="<?= @htmlentities($formdata['achternaam']) ?>"/><br /><br />
		Geboortedatum*<br />
		<input type="date" name="geboortedatum" value="<?= @htmlentities($formdata['geboortedatum']) ?>"/><br /><br />
		Naam zoon/dochter*<br />
		<input type="text" name="naam" value="<?= @htmlentities($formdata['naam']) ?>"/><br /><br />
	</ul>
<h2>Contactgegevens</h2>
	<ul>
		E-mailadres*<br />
		<input type="text" name="email" value="<?= @htmlentities($formdata['email']) ?>"/><br /><br />
		Wilt u de nieuwsbrief (per e-mail) ontvangen?*<br />
    <input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Ja<br />
		<input type="radio" name="nieuwsbrief" value="<?= @htmlentities($formdata['nieuwsbrief']) ?>"/>Nee<br /><br />
		Wilt u het MOTjE (per e-mail) ontvangen?*<br />
    <input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Ja<br />
		<input type="radio" name="motje" value="<?= @htmlentities($formdata['motje']) ?>"/>Nee<br /><br />
		Telefoonnummer*<br />
		<input type="text" name="telefoon" min="10" value="<?= @htmlentities($formdata['telefoon']) ?>"/><br /><br />
		Straat en huisnummer*<br />
		<input type="text" name="adres" value="<?= @htmlentities($formdata['adres']) ?>"/><br /><br />
		Postcode*<br />
		<input type="text" name="postcode" value="<?= @htmlentities($formdata['postcode']) ?>"/><br /><br />
		Woonplaats*<br />
		<input type="text" name="plaats" value="<?= @htmlentities($formdata['plaats']) ?>"/><br /><br /><br />
		
    <input type="submit" name="versturen" value="Verstuur"/><br /><br />
  </ul>
  <p>Alle velden gemarkeerd met een * zijn verplicht.</p>
</form>
</html>


Controleer en verzendscript:
<?php
$naar = 'email'; // Waar moet het naartoe? 
$onderwerp = 'Inschrijfformulier Vriend van BeeVee'; // Het onderwerp van het bericht

if ('POST' === $_SERVER['REQUEST_METHOD']) // Als het formulier verzonden is door op de verzend knop te klikken
{
	$formValues = array(
	  'duur' => isset($_POST['duur']), // Alle overbodige spaties uit het voornaam veld verwijderen
	  'bedrag' => trim($_POST['bedrag']),
	  'aanhef' => isset($_POST['aanhef']),
	  'voornaam' => trim($_POST['voornaam']),
	  'achternaam' => trim($_POST['achternaam']),
	  'geboortedatum' => trim($_POST['geboortedatum']),
	  'naam' => trim($_POST['naam']),
	  'email' => trim($_POST['email']),
	  'nieuwsbrief' => isset($_POST['nieuwsbrief']),
	  'motje' => isset($_POST['motje']),
	  'telefoon' => trim($_POST['telefoon']),
	  'adres' => trim($_POST['adres']),
	  'postcode' => trim($_POST['postcode']),
	  'plaats' => trim($_POST['plaats'])
  );
  $_SESSION['vriendenvan_ouders_formdata'] = $formValues;

  $errorInForm = false;

  if(empty($formValues['duur']))
  {
    print '<p>Vul een lidmaatschapsduur in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['bedrag']))
  {
    print '<p>Vul een bedrag in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['aanhef']))
  {
    print '<p>Vul een aanhef in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['voornaam']))
  {
    print '<p>Vul een voornaam in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['achternaam']))
  {
    print '<p>Vul een achternaam in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['geboortedatum']))
  {
    print '<p>Vul een geboortedatum in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['naam']))
  {
    print '<p>Vul een naam van uw zoon/dochter in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['email']))
  {
    print '<p>Vul een e-mailadres in.</p>';
    $errorInForm = true;
  }
  if(!filter_var($formValues['email'], FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
  {
    print '<p>Vul een juist e-mailadres in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['nieuwsbrief']))
  {
    print '<p>Geef aan of u de nieuwsbrief wilt ontvangen of niet.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['motje']))
  {
    print '<p>Geef aan of u het MOTjE wilt ontvangen of niet.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['telefoon']))
  {
    print '<p>Vul een telefoonnummer in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['adres']))
  {
    print '<p>Vul een straat en huisnummer in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['postcode']))
  {
    print '<p>Vul een postcode in.</p>';
    $errorInForm = true;
  }
  if(empty($formValues['plaats']))
  {
    print '<p>Vul een woonplaats in.</p>';
    $errorInForm = true;
  }
  
  if ( $errorInForm ) {
	  print('<p>Probeer het <a href="vriendenvanbeevee-ouders.php">hier</a> opnieuw.</p>');
  }else{
	  $emailSender = new email();
	  $emailSender->set_sender( $formValues['voornaam'] . ' ' . $formValues['achternaam'], $formValues['email'] );
	  $emailSender->set_subject( $onderwerp );
	  $strBody = <<<EOM
	Gegevens vriend van BeeVee (ouders)
	Duur lidmaatschap: ${formValues['duur']}
	Bedrag: ${formValues['bedrag']}
	Aanhef: ${formValues['aanhef']}
	Naam: ${formValues['voornaam']} ${formValues['achternaam']}
	Geboortedatum: ${formValues['geboortedatum']}
	Naam zoon/dochter: ${formValues['naam']}
	E-mailadres: ${formValues['email']}
	Nieuwsbrief: ${formValues['nieuwsbrief']}
	MOTjE: ${formValues['motje']}
	Telefoonnummer: ${formValues['telefoon']}
	Straat en huisnummer: ${formValues['adres']}
	Postcode: ${formValues['postcode']}
	Woonplaats: ${formValues['plaats']}
EOM
		;
	  // Als je email::PLAIN verandert in email::HTML, dan kun je een HTML e-mail versturen. Denk dan wel er aan dat je <br> nodig hebt ipv \n om naar een nieuwe regel te gaan
	  $emailSender->set_message( $strBody, email::PLAIN );
	  $emailSender->set_receiver( "Ontvanger", $naar );
	  $result = $emailSender->send();
	  if ( ! ( $result instanceof PEAR_Error ) ) {
		// Het is gelukt
		unset($_SESSION['vriendenvan_ouders_formdata']);
		print '<p>Het formulier is succesvol verzonden!</p>';
		print '<p>Klik <a href="../../home.php">hier</a> om terug te gaan naar de homepagina.</p>';
	  }else{
		// Het ging mis. Ik weet het niet zeker, maar waarschijnlijk heeft de variabele $result meer info
		print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
	  }
  }

}
?>


Alvast super erg bedankt, ik zit hier al lang mee te struggelen.
Geen idee wat er in $formdata['nieuwsbrief'] zit maar dat zet je in beide values.
Je wilt waarschijnlijk de JA of NEE retour.

Wilt u de nieuwsbrief (per e-mail) ontvangen?*<br />
<input type="radio" name="nieuwsbrief" value="JA" />Ja<br /><br />
<input type="radio" name="nieuwsbrief" value="NEE" />Nee<br /><br />
Bedankt voor je snelle antwoord. Ik heb inderdaad al geprobeerd om de value te veranderen, maar hij blijft "1" doorsturen :(
Haal even je e-mailadres uit je post ivm spammers.

'nieuwsbrief' => isset($_POST['nieuwsbrief']),

De function isset() geeft true/false terug = 1/0.
Je pakt hier niet de value.
Als ik niet isset() gebruik, dan krijg ik na het drukken op de verzendknop een compleet witte pagina.
'nieuwsbrief' => (isset($_POST['nieuwsbrief']) ? $_POST['nieuwsbrief'] : 'Leeg'),

Reageren