login/pass: error messages below page title
[minimedit.git] / widget / contact.php
index 6ccb79a987bf0cff58d1ffbb62c382ada2708b30..8fdc948f21a76af8b02f0038e51af47c8cb88dc8 100644 (file)
@@ -1,18 +1,20 @@
 <?php
+if (!$_POST) {
+       return;
+}
+
 $error = NULL;
-if ($_POST) {
-       global $User;
-       if ($User->login) {
-               $_REQUEST['login'] = $User->login;
-               $_REQUEST['email'] = $_REQUEST['email'] ?: $User->email;
-       }
-       else {
-               unset($_REQUEST['login']);
-       }
-       $error = mailform($_REQUEST, $Page->place);
-       if (!empty($error)) {
-               print "<p class=warn>$error</p>\n\n";
-       }
+global $User;
+if ($User->login) {
+       $_REQUEST['login'] = $User->login;
+       $_REQUEST['email'] = $_REQUEST['email'] ?: $User->email;
+}
+else {
+       unset($_REQUEST['login']);
+}
+$error = mailform($_REQUEST, $Page->place);
+if (!empty($error)) {
+       print "<p class=warn>$error</p>\n\n";
 }
 
 function mailform($input = [], $config = [])
@@ -57,6 +59,13 @@ switch ($source) {
        }
        $header = "From: $reply";
 
+       if ($origin = @$_SERVER['REMOTE_ADDR']) {
+               if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
+                       $origin .= sprintf(' (%s)', gethostbyaddr($origin));
+               }
+               $header .= "\r\nReceived: from $origin by $domain{$config['url']}; ".date('r');
+       }
+
        foreach (array(
                'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
                'User-Agent'        => 'HTTP_USER_AGENT',
@@ -65,16 +74,17 @@ switch ($source) {
                $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";
-
+       $body = '';
        foreach ($input as $k => $v) {
                $body .= "$k: $v\r\n";
        }
 
+       if ($logfile = fopen('maillog.txt', 'a')) {
+               $logdata = "Date: ".strftime("%F %T");
+               $logdata .= "\nTo: $rcpt\nSubject: $subject\n$header\n\n$body.\n\n";
+               fwrite($logfile, str_replace("\r\n", "\n", $logdata));
+       }
+
        $sent = mail($rcpt, $subject, $body, $header);
        if (!$sent)
                return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';