widget/contact: send from given name
[minimedit.git] / widget / contact.php
index 6e04005226abade032281e95fb36f750dfe8f521..c6e702234b8d8d00e46258d6c5952a75f0108ac2 100644 (file)
@@ -2,7 +2,7 @@
 $error = NULL;
 if ($_POST) {
        global $User;
-       if ($User) {
+       if ($User->login) {
                $_REQUEST['login'] = $User->login;
                $_REQUEST['email'] = $_REQUEST['email'] ?: $User->email;
        }
@@ -52,13 +52,16 @@ switch ($source) {
 
        $reply = preg_match('/\A[^\s\'@]{1,64}@[.a-zA-Z0-9-]{4,63}\z/', @$input['email'])
                ? $input['email'] : "noreply@$domain";
+       if ($displayname = @$input['naam']) {
+               $reply = sprintf('"%s" <%s>', addcslashes($displayname, "\\\"\0..\37"), $reply);
+       }
        $header = "From: $reply";
 
        foreach (array(
                'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
                'User-Agent'        => 'HTTP_USER_AGENT',
        ) as $mailhdr => $serverhdr) {
-               if (!$_SERVER[$serverhdr]) continue;
+               if (empty($_SERVER[$serverhdr])) continue;
                $header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
        }