edit/page: editor notification of save results
[minimedit.git] / contact.php
1 <?php
2 if ($_POST) {
3         if (!empty($User)) {
4                 $_REQUEST['login'] = $User['name'];
5         }
6         $error = mailform($_REQUEST);
7         if (!empty($error)) {
8                 print "<p class=warn>$error</p>\n\n";
9         }
10 }
11
12 function mailform($input = [])
13 {
14         $source = empty($input['subject']) ? 'reactie' : $input['subject'];
15         if (!$input) {
16                 return 'Geen gegevens ontvangen. Probeer het nog eens.';
17         }
18         if (empty($input['email']) or !preg_match('/.+@.+\..+/', $input['email'])) {
19                 return 'Een geldig e-mailadres is verplicht zodat we antwoord kunnen geven.';
20         }
21         if (isset($input['naam']) and empty($input['naam'])) {
22                 return 'Geef ook een naam waarmee we u kunnen aanspreken.';
23         }
24
25         $rcpt = 'info@'.$_SERVER['HTTP_HOST'];
26         $subject = "Formulier {$_SERVER['HTTP_HOST']}: $source";
27         $reply = preg_match('/\A\w+@\w+\.[a-z]+\z/', $input['email'])
28                 ? $input['email'] : $rcpt;
29         $header = "From: $reply";
30
31         foreach (array(
32                 'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
33                 'User-Agent'        => 'HTTP_USER_AGENT',
34         ) as $mailhdr => $serverhdr) {
35                 if (!$_SERVER[$serverhdr]) continue;
36                 $header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
37         }
38
39         $origin = $_SERVER['REMOTE_ADDR'];
40         $origin .= sprintf(' (%s)', gethostbyaddr($origin));
41         $body = "Ingevuld vanaf $origin:\r\n\r\n";
42
43         foreach ($input as $k => $v) {
44                 $body .= "$k: $v\r\n";
45         }
46
47         $sent = mail($rcpt, $subject, $body, $header);
48         if (!$sent)
49                 return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
50
51         switch ($source) {
52         case 'bestelling':
53                 print '<p>Bedankt voor uw bestelling. U ontvangt z.s.m. de bevestiging van deze bestelling via uw opgegeven e-mailadres.</p>';
54                 break;
55         default:
56                 print '<p>Bedankt voor uw reactie!</p>';
57         }
58         return;
59 }