<?php
-$source = empty($_REQUEST['subject']) ? 'reactie' : $_REQUEST['subject'];
-if (!$_POST) {
- echo 'Geen gegevens ontvangen. Probeer het nog eens.';
-}
-elseif (empty($_POST['email']) or !preg_match('/.+@.+\..+/', $_POST['email'])) {
- echo 'Een geldig e-mailadres is verplicht. Ga terug en probeer het nog eens.';
+$error = NULL;
+if ($_POST) {
+ global $User;
+ if (!empty($User)) {
+ $_REQUEST['login'] = $User['name'];
+ }
+ $error = mailform($_REQUEST);
+ if (!empty($error)) {
+ print "<p class=warn>$error</p>\n\n";
+ }
}
-elseif (isset($_POST['naam']) and empty($_POST['naam'])) {
- echo 'Er ontbraken vereiste gegevens. Ga terug en probeer het nog eens.';
+
+function mailform($input = [])
+{
+ $source = empty($input['subject']) ? 'reactie' : $input['subject'];
+ $domain = preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
+ $rcpt = "info@$domain";
+ $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 <heleen.terlouw.2910@gmail.com>';
+ 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.';
+ }
}
-else {
- $rcpt = 'info@covexcelsiorleiderdorp.nl';
- $subject = "Formulier $_SERVER[HTTP_HOST]: $source";
- $reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', $_POST['email'])
- ? $_POST['email'] : $rcpt;
+
+ $reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', @$input['email'])
+ ? $input['email'] : "noreply@$domain";
$header = "From: $reply";
foreach (array(
}
$origin = $_SERVER['REMOTE_ADDR'];
- $origin .= sprintf(' (%s)', gethostbyaddr($origin));
+ if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
+ $origin .= sprintf(' (%s)', gethostbyaddr($origin));
+ }
$body = "Ingevuld vanaf $origin:\r\n\r\n";
- foreach ($_POST as $k => $v) {
+ foreach ($input as $k => $v) {
$body .= "$k: $v\r\n";
}
$sent = mail($rcpt, $subject, $body, $header);
if (!$sent)
- echo '<p>Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.</p>';
- elseif ($source == 'bestelling')
- echo '<p>Bedankt voor uw bestelling. U ontvangt z.s.m. de bevestiging van deze bestelling via uw opgegeven e-mailadres.</p>';
- else
- echo '<p>Bedankt voor uw reactie!</p>';
-}
+ return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
+ switch ($source) {
+ case 'bestelling':
+ print '<p>Bedankt voor uw bestelling. U ontvangt z.s.m. de bevestiging van deze bestelling via uw opgegeven e-mailadres.</p>';
+ break;
+ case 'bbq':
+ print "<p>Bedankt voor je deelname. Tot ziens!</p>";
+ break;
+ case 'melding':
+ print "<p>Bedankt voor de melding. Na goedkeuring zal het hier geplaatst worden.</p>";
+ break;
+ default:
+ print '<p>Bedankt voor uw reactie!</p>';
+ }
+ return;
+}