$error
\n\n";
}
}
function mailform($input = [])
{
$source = empty($input['subject']) ? 'reactie' : $input['subject'];
$rcpt = 'info@'.$_SERVER['HTTP_HOST'];
$subject = "Formulier {$_SERVER['HTTP_HOST']}: $source";
if (!$input) {
return 'Geen gegevens ontvangen. Probeer het nog eens.';
}
switch ($source) {
case 'melding':
if (empty($input['login'])) {
return "Inloggen is verplicht om een melding te plaatsen.";
}
if (empty($input['body'])) {
return "Geen bericht opgegeven.";
}
break;
case 'bbq':
if (empty($input['naam']) or empty($input['huis'])) {
return 'De bedoeling is juist dat je opgeeft wie er komt.';
}
$rcpt .= ', Heleen ';
break;
default:
if (empty($input['email']) or !preg_match('/.+@.+\..+/', $input['email'])) {
return 'Een geldig e-mailadres is verplicht zodat we antwoord kunnen geven.';
}
if (isset($input['naam']) and empty($input['naam'])) {
return 'Geef ook een naam waarmee we u kunnen aanspreken.';
}
}
$reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', @$input['email'])
? $input['email'] : 'noreply@'.$_SERVER['HTTP_HOST'];
$header = "From: $reply";
foreach (array(
'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
'User-Agent' => 'HTTP_USER_AGENT',
) as $mailhdr => $serverhdr) {
if (!$_SERVER[$serverhdr]) continue;
$header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
}
$origin = $_SERVER['REMOTE_ADDR'];
if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
$origin .= sprintf(' (%s)', gethostbyaddr($origin));
}
$body = "Ingevuld vanaf $origin:\r\n\r\n";
foreach ($input as $k => $v) {
$body .= "$k: $v\r\n";
}
$sent = mail($rcpt, $subject, $body, $header);
if (!$sent)
return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
switch ($source) {
case 'bestelling':
print 'Bedankt voor uw bestelling. U ontvangt z.s.m. de bevestiging van deze bestelling via uw opgegeven e-mailadres.
';
break;
case 'bbq':
print "Bedankt voor je deelname. Tot ziens!
";
break;
case 'melding':
print "Bedankt voor de melding. Na goedkeuring zal het hier geplaatst worden.
";
break;
default:
print 'Bedankt voor uw reactie!
';
}
return;
}