contact: exceptional parsing and delivery for bbq
[minimedit.git] / contact.php
index 5c4c962c072b9ca5bb6119a717851a0b6bda9c2d..c55ec0c033081af57341d891810722feb10aa547 100644 (file)
@@ -1,25 +1,43 @@
 <?php
+$error = NULL;
 if ($_POST) {
-       print mailform($_REQUEST);
+       if (!empty($User)) {
+               $_REQUEST['login'] = $User['name'];
+       }
+       $error = mailform($_REQUEST);
+       if (!empty($error)) {
+               print "<p class=warn>$error</p>\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 '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. Ga terug en probeer het nog eens.';
+               return 'Een geldig e-mailadres is verplicht zodat we antwoord kunnen geven.';
        }
        if (isset($input['naam']) and empty($input['naam'])) {
-               return 'Er ontbraken vereiste gegevens. Ga terug en probeer het nog eens.';
+               return 'Geef ook een naam waarmee we u kunnen aanspreken.';
        }
+}
 
-       $rcpt = 'info@covexcelsiorleiderdorp.nl';
-       $subject = "Formulier $_SERVER[HTTP_HOST]: $source";
-       $reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', $input['email'])
-               ? $input['email'] : $rcpt;
+       $reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', @$input['email'])
+               ? $input['email'] : 'noreply@'.$_SERVER['HTTP_HOST'];
        $header = "From: $reply";
 
        foreach (array(
@@ -42,9 +60,15 @@ function mailform($input = [])
        if (!$sent)
                return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
 
-       if ($source == 'bestelling')
+       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>';
-       else
+               break;
+       case 'bbq':
+               print "<p>Bedankt voor je deelname. Tot ziens!</p>";
+               break;
+       default:
                print '<p>Bedankt voor uw reactie!</p>';
+       }
        return;
 }