Ik heb ook een vraagje over radio button

dit is wat er staat in mijn php script

<?php
 if(isset($_POST['gender'])

 { 

 if(empty($gender)) // Als het voornaam veld niet is ingevuld
 {
 print '<p>bent u man of vrouw!</p>';
 $fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
 }
 }
?>

en dit staat er in mijn form.


 <input type="radio" name="geslacht" value="man">Male<br>
 <input type="radio" name="geslacht" value="vrouw">Vrouw


ik krijg alleen maar de fout melding dat ik geen keus zou hebben gemaakt, terwijl ik dat wel heb gedaan.
wat doe ik fout.

als de input(s) de name "geslacht" hebben, dan zal dat weinig invloed hebben op het wel of niet ge-set zijn van $_POST['gender'] .....

$_POST['geslacht'] echter......

daarnaast:

checked="checked" bij een van de 2, maakt ook al dat er vrijwel altijd 1 is ingevuld..
Ik snap niet zo goed wat je bedoeld

[size=xsmall]Toevoeging op 07/07/2014 17:19:56:[/size]

Ik snap niet zo goed wat je bedoeld
verander $_POST['gender'] en $gender naar $_POST['geslacht']
<?php
if(isset($_POST['geslacht'])

{

if(empty($_POST['geslacht'])) // Als het voornaam veld niet is ingevuld
{
echo "<p>Bent u man of vrouw?</p>";
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
}
?>
werkt nog steeds niet dit is dan wat ik krijg als ik alles heb ingevuld en wil verzenden.


Voornaam vergeten!

Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.
Je vraag gaat over radio buttons die het geslacht bepalen.

Je laatste opmerking gaat over een gewone text input waar een naam ingevuld moet worden. Dat probleem zal wel in de buurt staan van de code van dit topic, maar heeft er op zich niets mee te maken.

Misschien ook die code erbij posten?
<table width="100%" border="5" bordercolor="#c0c0c0" bgcolor="#ffffff" align="top">
<tr>

<th width="800" scope="col"> <table width="833" height="214" border="0" align="center" style="vertical-align: top;">
<tr>
<th width="299" rowspan="2" scope="col">

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<table width="329" height="260" border="0">
<tr>
<td width="319" height="256" style="vertical-align: top; text-align: left;"><table width="252" border="0">
<tr></tr>
<tr>
<td width="110">Voornaam* <span class="error"> </span></td>
<td width="144" style="vertical-align:top"><input type="text" name="voornaam" value="<?php echo $name;?>" />
<span class="error"><?php echo $nameErr;?></span></td>
<td width="107">

</td>
</tr>
<tr>
<td>Achternaam* <span class="error"></span></td>
<td><input type="text" name="achternaam" value="<?php echo $name;?>" />
<span class="error"><?php echo $nameErr;?></span></td>
<td>


</td>
</tr>
<tr>
<td>E-mail* <span class="error"></span></td>
<td><input type="text" name="email" value="<?php echo $emailErr;?>" />
<span class="error"><?php echo $emailErr;?></span></td>
<td></td>
</tr>
</table>
<table width="200" border="0">
<tr>
<td>Bericht*</td>
<td><textarea name="bericht" rows="5" cols="40"><?php echo $comment;?></textarea></td>
</tr>
</table>
<table width="200" border="0" align="left">
<tr>
<td><input type="reset" value="Begin opnieuw" style="background-color: #e5c1b9; color: Black;font-family: Verdana; font-size: 10 pt;"/></td>
<td><input type="submit" name="versturen" value="Verzenden" style="background-color:#e5c1b9; color: Black;font-family: Verdana; font-size: 10 pt;"/></td>
</tr>
</table>
<p>&nbsp;</p>
<p><span class="error"><span style="vertical-align:top">
<input type="radio" name="gender" value="man">Male<br>
<input type="radio" name="gender" value="vrouw">Vrouw
<?php

// define variables and set to empty values
$nameErr = $emailErr = $geslachtErr = $websiteErr = "";
$name = $email = $geslacht = $comment = $website = "";
$naar = ''; // Waar moet het naartoe?
$onderwerp = 'De zilveren draad'; // Het onderwerp van het bericht

// Header instellen, zodat nl2br() werkt
$headers = "MIME-version: 1.0\r\n";
$headers .= "content-type: text/html;charset=utf-8\r\n";


if(isset($_POST['geslacht']))

{

if(empty($_POST['geslacht'])) // Als het voornaam veld niet is ingevuld
{
echo "<p>Bent u man of vrouw?</p>";
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
}




if(isset($_POST['versturen'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$fout = false; // Om te kijken straks of er wat fout is

if(empty($gender)) // Als het voornaam veld niet is ingevuld
{
print '<p>Voornaam vergeten!</p>';
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
}
?>

<?php




if(isset($_POST['versturen'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$achternaam = trim($_POST['achternaam']); // Alle overbodige spaties uit het achternaam veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($achternaam)) // Als het achternaam veld niet is ingevuld
{
print '<p>Achternaam vergeten!</p>';
$fout = true;
}
}
?>
<?php





if(isset($_POST['versturen'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($email)) // Als het email veld niet is ingevuld
{
print '<p>email vergeten!</p>';
$fout = true;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>fout email adres!</p>';
$fout = true;
}
}
?>
<?php





if(isset($_POST['versturen'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($bericht)) // Als het bericht veld niet is ingevuld
{
print '<p>bericht vergeten!</p>';
$fout = true;
}

if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
{
$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

if(mail($naar, $onderwerp, nl2br($bericht), $headers))
{
print '<p>Het bericht is succesvol verzonden!</p>';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}
}
?>
</p></td>
</tr>
</table>
</form>

<p><span class="error">Alle velden gemarkeerd met een * zijn verplicht.</span></p>
een paar opmerkingen.

to the point: zoekop waar de melding Voornaam vergeten vandaan komt en kijk 2 regels eerder waar je op controleert....

verder: die eerste echo met action="". Laat die gewoon achterwege.

Dat is echter wel de enige plek waar je htmlspecialchars gebruikt.
En op alle andere plekken waar je dingen als $name echoot, daar vergeet je dat.

Verder snap ik niet waarom je een keer of 10 controleert of $_POST['versturen'] bestaat.

Dat doe je 1x, en dan check je stuk voor stuk de te verwachten invoers.



Sowieso: ipv controleren op de aanwezigheid van $_POST['versture'], kun je ook doen wat je werkelijk wilt weten: is er een form gepost?
if($_SERVER['REQUEST_METHOD'] == 'POST')

En tenslotte:
die hele stukken PHP komen boven je html te staan, zodat je eventueel $name ook in kunt vullen.
Of het form kunt weg laten als je constateert dat alles ok was
alles werkt weer maar me radio button nog steeds niet

if(isset($_POST['versturen'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$voornaam = trim($_POST['voornaam']); // Alle overbodige spaties uit het voornaam veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($voornaam)) // Als het voornaam veld niet is ingevuld
{
print '<p>Voornaam vergeten!</p>';
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
}







if($_SERVER['REQUEST_METHOD'] == 'POST') // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$achternaam = trim($_POST['achternaam']); // Alle overbodige spaties uit het achternaam veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($achternaam)) // Als het achternaam veld niet is ingevuld
{
print '<p>Achternaam vergeten!</p>';
$fout = true;
}
}






if($_SERVER['REQUEST_METHOD'] == 'POST') // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$email = trim($_POST['email']); // Alle overbodige spaties uit het email veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($email)) // Als het email veld niet is ingevuld
{
print '<p>email vergeten!</p>';
$fout = true;
}
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) // Als het email adres niet correct is
{
print '<p>fout email adres!</p>';
$fout = true;
}
}

if(isset($_POST['geslacht'])) // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$gender = trim($_POST['geslacht']); // Alle overbodige spaties uit het voornaam veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($gender)) // Als het voornaam veld niet is ingevuld
{
print '<p>geslacht vergeten!</p>';
$fout = true; // Zorgen dat het script zometeen weet dat er wat fout is
}
}



if($_SERVER['REQUEST_METHOD'] == 'POST') // Check naar POST versturen// Als het formulier verzonden is door op de verzend knop te klikken
{
$bericht = trim($_POST['bericht']); // Alle overbodige spaties uit het bericht veld verwijderen

$fout = false; // Om te kijken straks of er wat fout is

if(empty($bericht)) // Als het bericht veld niet is ingevuld
{
print '<p>bericht vergeten!</p>';
$fout = true;
}

if($fout == false) // Als er niks fout is (alles is dus netjes ingevuld)
{
$headers .= 'From: ' . $voornaam . ' ' . $achternaam . '<' . $email . '>'; // Een afzender instellen zodat je kan reageren.

if(mail($naar, $onderwerp, nl2br($bericht), $headers))
{
print '<p>Het bericht is succesvol verzonden!</p>';
}
else
{
print '<p>Helaas, er is wat fout gegaan tijdens het verzenden van het formulier.</p>';
}
}
}
?>

Reageren