Ik heb al eens een bericht geplaatst, maar nooit antwoord gehad. Dus liet ik dat stukje voor gezien, maar ik stuit nu op een ander probleem.
Het is een simpel contact formulier. Maakt me niet uit of er slechte dingen aan zitten, want hij doet het! Bij een formulier is het natuurlijk mogelijk dat mensen sommige dingen niet hoeven, dus hoeven ze die velden niet in te vullen. Nu wil ik er voor zorgen dat het emailtje deze dingen weg laat, maar ik heb geen enkel idee hoe ik dat voor elkaar krijg.
---- Formulier ----
<form action="contact.php" method="post">
<div class="urbangreymenu">
<h3 class="headerbar"><a href="#" class="link">Contactgegevens</a></h3>
<div class="submenu">
<div>
<label for="naam">Naam:</label> <input type="text" name="yourname">
</div>
<div>
<label for="onderwerp">Onderwerp:</label> <input type="text" name="subject">
</div>
<div>
<label for="email">E-mail:</label> <input type="text" name="email">
</div>
<div>
<label for="telnr">Tel.nr:</label> <input type="text" name="telefoon">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Spiegels</a></h3>
<div class="submenu">
<div>
<label for="naam">Aantal:</label> <input type="text" name="spiegels_aantal">
</div>
<div>
<label for="naam" class="dropdown">Kleuren:</label>
<select name="spiegels">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Brons">Brons</option>
<option value="Blauw">Blauw</option>
<option value="Zilver">Zilver</option>
<option value="Veiligheid">Veiligheidsspiegels</option>
<option value="Meedere kleuren">Meerdere kleuren op aanvraag</option>
</select>
</div>
<div>
<label for="spiegels_anderekleur">Anders:</label> <input type="text" value="Vul andere kleur in" name="spiegels_anderekleur">
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Isolatieglas</a></h3>
<div class="submenu">
<div>
<label for="isolatieglas_aantal">Aantal:</label> <input type="text" name="isolatieglas_aantal">
</div>
<div>
<label for="naam" class="dropdown">Isolatieglas:</label>
<select name="isolatieglas">
<option value=""> -- Gelieve te selecteren -- </option>
<option value="Luchtgevuld">Luchtgevuld</option>
<option value="HR+ Argongas / Cryptongas gevuld">HR+ Argongas / Cryptongas gevuld</option>
<option value="HR++ Argongas / Cryptongas gevuld">HR++ Argongas / Cryptongas gevuld</option>
<option value="Met kruisroede in verschillende kleuren">Met kruisroede in verschillende kleuren</option>
<option value="In combinatie met gehard of gelaagd">In combinatie met gehard of gelaagd</option>
</select>
</div>
<div>
<label for="isolatieglas_uwaarde">U-waarde: </label>
<select size="1" name="isolatieglas_uwaarde">
<option>2,8 W/m2K bij 15 mm spouw lucht</option>
<option>1,2 W/m2K bij 15 mm spouw argongas</option>
</select>
</div>
</div>
<h3 class="headerbar"><a href="#" class="link">Opmerkingen</a></h3>
<div class="submenu">
<div>
<label for="comments">Comments:</label> <textarea name="comments"></textarea>
</div>
<div class="submitbutton">
<input type="submit" value="Send it!" class="submit">
</div>
</form>
</div>
</div>
--- PHP Email script ---
<?php
/* Set e-mail recipient */
$myemail = "mijnemail";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject = check_input($_POST['subject'], "Write a subject");
$email = check_input($_POST['email']);
$telefoon = check_input($_POST['telefoon']);
$website = check_input($_POST['website']);
$likeit = check_input($_POST['likeit']);
$isolatieglas_aantal = check_input($_POST['isolatieglas_aantal']);
$isolatieglas_uwaarde = check_input($_POST['isolatieglas_uwaarde']);
$isolatieglas = check_input($_POST['isolatieglas']);
$spiegels = check_input($_POST['spiegels']);
$spiegels_aantal = check_input($_POST['spiegels_aantal']);
$spiegels_anderekleur = check_input($_POST['spiegels_anderekleur']);
$comments = check_input($_POST['comments'], "Write your comments");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
}
/* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
$website = '';
}
/* Let's prepare the message for the e-mail */
$message = "Er is een nieuwe offerte geplaatst, hieronder staan de ingevulde gegevens:
---------------------------- PERSOONLIJKE INFORMATIE ----------------------------
Name: $yourname
E-mail: $email
Telefoonnummer: $telefoon
--------------------------------- ISOLATIEGLAS ----------------------------------
Aantal isolatieglas: $isolatieglas_aantal
Isolatieglas: $isolatieglas
U-waarde: $isolatieglas_uwaarde
----------------------------------- SPIEGELS ------------------------------------
Aantal spiegels: $spiegels_aantal
Kleur: $spiegels
Andere kleur: $spiegels_anderekleur
---------------------------------- COMMENTAAR -----------------------------------
$comments
";
/* Send the message using mail() function */
mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
header('Location: thanks.htm');
exit();
/* Functions we used */
function check_input($data, $problem='')
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) == 0)
{
show_error($problem);
}
return $data;
}
function show_error($myError)
{
?>
<html>
<body>
<b>Gelieve de volgende error te corrigeren:</b><br />
<?php echo $myError; ?>
</body>
</html>
<?php
exit();
}
?>
Kortom: Als mensen bijvoorbeeld geen Isolatieglas willen, vullen ze dit ook niet in. Ik wil dus dat het emailtje ook niet de aspecten van Isolatieglas bevat, maar dit simpelweg weglaat.
Iemand een idee?
Ever