contact: code cleanup (mailform function)
authorMischa POSLAWSKY <perl@shiar.org>
Mon, 18 Jun 2018 13:27:56 +0000 (15:27 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 18 Jun 2018 13:35:45 +0000 (15:35 +0200)
contact.php

index 1f0bad5ad58b38e9840a25be2d72e9a0f98efb3c..5c4c962c072b9ca5bb6119a717851a0b6bda9c2d 100644 (file)
@@ -1,19 +1,25 @@
 <?php
-$source = empty($_REQUEST['subject']) ? 'reactie' : $_REQUEST['subject'];
-if (!$_POST) {
-       echo 'Geen gegevens ontvangen. Probeer het nog eens.';
+if ($_POST) {
+       print mailform($_REQUEST);
 }
-elseif (empty($_POST['email']) or !preg_match('/.+@.+\..+/', $_POST['email'])) {
-       echo 'Een geldig e-mailadres is verplicht. Ga terug en probeer het nog eens.';
-}
-elseif (isset($_POST['naam']) and empty($_POST['naam'])) {
-       echo 'Er ontbraken vereiste gegevens. Ga terug en probeer het nog eens.';
-}
-else {
+
+function mailform($input = [])
+{
+       $source = empty($input['subject']) ? 'reactie' : $input['subject'];
+       if (!$input) {
+               return 'Geen gegevens ontvangen. Probeer het nog eens.';
+       }
+       if (empty($input['email']) or !preg_match('/.+@.+\..+/', $input['email'])) {
+               return 'Een geldig e-mailadres is verplicht. Ga terug en probeer het nog eens.';
+       }
+       if (isset($input['naam']) and empty($input['naam'])) {
+               return 'Er ontbraken vereiste gegevens. Ga terug en probeer het nog eens.';
+       }
+
        $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'] : $rcpt;
        $header = "From: $reply";
 
        foreach (array(
@@ -28,16 +34,17 @@ else {
        $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>';
+               return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
+
+       if ($source == 'bestelling')
+               print '<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>';
+               print '<p>Bedankt voor uw reactie!</p>';
+       return;
 }
-