Ben nog maar een beginner en heb een probleem met checkboxen. Ik heb een formulier gemaakt wat in principe gewoon werkt, maar een foutmelding

(bv Notice: Undefined index: onderhoud_reparatie in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 32)

geeft als 1 of meerdere checkboxen niet zijn aangevinkt. Zie hieronder mijn formulier

<html>
<head>
<title>Formulier</title>

</head>






<body bgcolor="#023C59" text="white" leftmargin="25">
<font face="Verdana" size="2">
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//Formulier uitgevoerd :melding weergeven
echo "Hartelijk bedankt voor uw reactie. Uw bericht is verzonden. U kunt dit venster sluiten.";
$recipient="emailadres";
$subject="formulier";
$header="From: " .$_POST["email"] . "\n";
$mail_body="Het formulier werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n";
$mail_body .="De volgende gegevens werden ingevoerd:\n\n";
$mail_body .="Naam: " . $_POST["naam"] . "\n";
$mail_body .="Adres: " . $_POST["adres"] . "\n";
$mail_body .="Postcode + Plaats: " . $_POST["postcode_plaats"] . "\n";
$mail_body .="Tel: " . $_POST["tel"] . "\n";
$mail_body .="Email: " . $_POST["email"] . "\n\n";

//Ik wil informatie over
$mail_body .="Ik wil graag informatie over:\n";
$mail_body .="Onderhoud en reparatie: " . $_POST["onderhoud_reparatie"] . "\n";
$mail_body .="Winterklaarmaken: " . $_POST["winterklaarmaken"] . "\n";
$mail_body .="Afbouw: " . $_POST["afbouw"] . "\n";
$mail_body .="Restyling: " . $_POST["restyling"] . "\n";
$mail_body .="Neem contact met mij op: " . $_POST["contact"] . "\n";
mail($recipient, $subject, $mail_body, $header);


} else {
//Formulier nog niet uitgevoerd: formulier weergeven
?>
<font face="Verdana"><h4>Formulier</h4></font>
<form action="sdi_formulier2.php" method="POST">
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Naam:</font>
</td><td width="150">
<input type="text" name="naam">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Adres:</font>
</td><td width="150">
<input type="text" name="adres">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Postcode + Plaats:</font>
</td><td width="150">
<input type="text" name="postcode_plaats">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Tel:</font>
</td><td width="150">
<input type="text" name="tel">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Email:</font>
</td><td width="150">
<input type="text" name="email">
</td></tr>
</table>
<p>
<font face="Verdana" size="2"><b>Ik wil graag meer informatie over:</b></font><br>
<table border="0" width="300">
<tr><td width="40">
<input type="checkbox" name="onderhoud_reparatie" value="on">
</td><td width="260">
<font face="Verdana" size="2">Onderhoud en reparatie</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="winterklaarmaken" value="on">
</td><td width="260">
<font face="Verdana" size="2">Winterklaarmaken</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="afbouw" value="on">
</td><td width="260">
<font face="Verdana" size="2">Afbouw</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="restyling" value="on">
</td><td width="260">
<font face="Verdana" size="2">Restyling</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="contact" value="on">
</td><td width="260">
<font face="Verdana" size="2">Neem contact met mij op</font>
</td></tr>
</table>
<p>
<center>
<input type="image" name="submit" src="knop_verstuur.jpg" onclick="this.form.submit();">
</center>

</form>



<?php
}
?>



</body>
</html>


Kan iemand mij hierbij helpen?
Probeer het ten eerste eens zo:

$mail_body .="Onderhoud en reparatie: " . $_POST['onderhoud_reparatie'] . "\n";

Dus $_POST['onderhoud_reparatie'] in plaats van $_POST["onderhoud_reparatie"].. verschil is hier dus de single ' en double quotes "..

Wanneer dat niet werkt kun je het zo proberen;

<?
if ($_POST['onderhoud_reparatie']
$mail_body .="Onderhoud en reparatie: " . $_POST['onderhoud_reparatie'] . "\n";
?>

Succes :o)
Ik heb het geprobeerd maar beiden werken niet
de variabele $onderhoud_reparatie is alleen gedefinieerd als ie aangevinkt is (nl. "on")
Je moet dus iets maken dat ie anders gedefinieerd wordt wanneer ie niet is aangevinkt:

<?php

if($onderhoud_reparatie == "on"){
$onderhoud_reparatie = "on";
}
else {
$onderhoud_reparatie = "off";
}

?>

Heb ik gelijk?

Cheers.
Nee dit werkt ook niet, want nu stuurt hij niets naar mijn mailbox, ook al gebruik je mail_body in bovenstaande code
Ja, ligt r aan wat je r mee doet.
Geef s de nieuwe code.
Wat ik voorheen heb getypt klopt sowieso wel, t gaat r om wat voor opdrachten je dan geeft.
Jouw code was volgens mij nog PHP4. Ik wil het graag in PHP5. Kan ook wezen dat ik het mis heb. Ben nog steeds maar een beginner. Ik heb er het volgende van gemaakt, maar dit werkt ook niet. De bedoeling is dus dat het aanvinken of niet aanvinken van een checkbox naar mijn mail wordt gestuurd, zonder dat hij een foutmelding geeft.

if($_POST["onderhoud_reparatie"] == "on"){
$mail_body .="Onderhoud en reparatie: " . ($_POST["onderhoud_reparatie"] == "on") . "\n";
}
else {
$mail_body .="Onderhoud en reparatie: " . ($_POST["onderhoud_reparatie"] == "off") . "\n";
}
Als je dit na je "if ($_SERVER['REQUEST_METHOD'] == 'POST') { " zet:

<?php

if($onderhoud_reparatie == "on"){
$onderhoudreparatie = "jan";
}
else {
$onderhoudreparatie = "nee";
}

?>

moet ie op de plaats:

$mail_body .="Onderhoud en reparatie: " . $_POST["onderhoudreparatie"] . "\n";

gewoon ja of nee printen.

Iemand anders waarom dit niet zou werken?

Groet, Niels

Mijn code ziet er nu als volgt uit. Hij stuurt keurig een mail met ja of nee. Alleen als je de vinkjes niet aanvinkt geeft hij nog steeds de volgende foutmelding


Hartelijk bedankt voor uw reactie. Uw bericht is verzonden. U kunt dit venster sluiten.
Notice: Undefined index: onderhoud_reparatie in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 33

Notice: Undefined index: winterklaarmaken in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 42

Notice: Undefined index: afbouw in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 51

Notice: Undefined index: restyling in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 60

Notice: Undefined index: contact in D:\Sites\pragmatist.nl\www\sdi_formulier2.php on line 69




dit is mijn code zoals ik het nu heb





<html>
<head>
<title>Formulier</title>

</head>






<body bgcolor="#023C59" text="white" leftmargin="25">
<font face="Verdana" size="2">
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//Formulier uitgevoerd :melding weergeven
echo "Hartelijk bedankt voor uw reactie. Uw bericht is verzonden. U kunt dit venster sluiten.";
$recipient="[email protected]";
$subject="formulier";
$header="From: " .$_POST["email"] . "\n";
$mail_body="Het formulier werd op " . date("d-m-Y") . " om " . date("H:i") . " uur uitgevoerd.\n";
$mail_body .="De volgende gegevens werden ingevoerd:\n\n";
$mail_body .="Naam: " . $_POST["naam"] . "\n";
$mail_body .="Adres: " . $_POST["adres"] . "\n";
$mail_body .="Postcode + Plaats: " . $_POST["postcode_plaats"] . "\n";
$mail_body .="Tel: " . $_POST["tel"] . "\n";
$mail_body .="Email: " . $_POST["email"] . "\n\n";

//Ik wil informatie over
$mail_body .="Ik wil graag informatie over:\n";

if($_POST["onderhoud_reparatie"] == "on"){
$_POST["onderhoud_reparatie"] = "ja";
}
else {
$_POST["onderhoud_reparatie"] = "nee";
}
$mail_body .="Onderhoud en reparatie: " . $_POST["onderhoud_reparatie"] . "\n";


if($_POST["winterklaarmaken"] == "on"){
$_POST["winterklaarmaken"] = "ja";
}
else {
$_POST["winterklaarmaken"] = "nee";
}
$mail_body .="Winterklaarmaken: " . $_POST["winterklaarmaken"] . "\n";


if($_POST["afbouw"] == "on"){
$_POST["afbouw"] = "ja";
}
else {
$_POST["afbouw"] = "nee";
}
$mail_body .="Afbouw: " . $_POST["afbouw"] . "\n";


if($_POST["restyling"] == "on"){
$_POST["restyling"] = "ja";
}
else {
$_POST["restyling"] = "nee";
}
$mail_body .="Restyling: " . $_POST["restyling"] . "\n";


if($_POST["contact"] == "on"){
$_POST["contact"] = "ja";
}
else {
$_POST["contact"] = "nee";
}
$mail_body .="Neem contact met mij op: " . $_POST["contact"] . "\n";


mail($recipient, $subject, $mail_body, $header);

} else {


//Formulier nog niet uitgevoerd: formulier weergeven
?>
<font face="Verdana"><h4>Formulier</h4></font>
<form action="sdi_formulier2.php" method="POST">
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Naam:</font>
</td><td width="150">
<input type="text" name="naam">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Adres:</font>
</td><td width="150">
<input type="text" name="adres">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Postcode + Plaats:</font>
</td><td width="150">
<input type="text" name="postcode_plaats">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Tel:</font>
</td><td width="150">
<input type="text" name="tel">
</td></tr>
<table border="0" width="300">
<tr><td width="150">
<font face="Verdana" size="2">Email:</font>
</td><td width="150">
<input type="text" name="email">
</td></tr>
</table>
<p>
<font face="Verdana" size="2"><b>Ik wil graag meer informatie over:</b></font><br>
<table border="0" width="300">
<tr><td width="40">
<input type="checkbox" name="onderhoud_reparatie">
</td><td width="260">
<font face="Verdana" size="2">Onderhoud en reparatie</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="winterklaarmaken">
</td><td width="260">
<font face="Verdana" size="2">Winterklaarmaken</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="afbouw">
</td><td width="260">
<font face="Verdana" size="2">Afbouw</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="restyling">
</td><td width="260">
<font face="Verdana" size="2">Restyling</font>
</td></tr>
<tr><td width="40">
<input type="checkbox" name="contact">
</td><td width="260">
<font face="Verdana" size="2">Neem contact met mij op</font>
</td></tr>
</table>
<p>
<center>
<input type="image" name="submit" src="knop_verstuur.jpg" onclick="this.form.submit();">
</center>

</form>



<?php
}
?>



</body>
</html>

probeer s onderhoud_reparatie in onderhoudreparatie te veranderen.
Geen idee waarom ie hier steeds op vastloopt.
groet
Dat werkt ook niet.

Misschien dat iemand anders weet waarom dit script wel gewoon zijn werk doet, maar een foutmelding geef als de checkboxen niet worden aangevinkt. (er wordt dan wel gewoon nee naar mijn mailbox gestuurd)

Reageren