[ 'send' => 'bool', // post 'priority' => 'int', // post 'from' => 'striptags', // post 'subject' => 'striptags', // post 'body' => 'xss', // post 'to' => 'email', // post 'g-recaptcha-response' => 'striptags', ], 'catchAllUnset' => null ]]; require_once('tiki-setup.php'); $messulib = TikiLib::lib('message'); // This feature needs both 'feature_contact' and 'feature_messages' to work $access->check_feature(['feature_contact', 'feature_messages']); $auto_query_args = []; if ($user) { $access->check_permission('tiki_p_messages'); } else { $access->check_feature('contact_anon'); } $smarty->assign('sent', 0); $priority = 3; $from = $user ? $user : ''; $subject = ''; $body = ''; if (isset($_REQUEST['send']) && $access->checkCsrf()) { if (isset($_REQUEST['priority'])) { $priority = $_REQUEST['priority']; } if (! $user && validate_email($_POST['from'])) { $from = 'tiki-contact.php'; $body .= tra('From') . " " . $_POST['from'] . ":\n"; } if (isset($_POST['subject'])) { $subject = $_POST['subject']; } if (isset($_POST['body'])) { $body .= $_POST['body']; } // Validation: // must have a subject or body non-empty (or both) $hasContent = ! empty($_POST['subject']) || ! empty($_POST['body']); $failsCaptcha = ! $user && $prefs['feature_antibot'] == 'y' && ! $captchalib->validate(); if (! $hasContent || empty($from) || $failsCaptcha) { if (! $hasContent) { $message = tra("You must include a subject or a message."); } elseif (empty($from)) { $message = tra("You must make sure to have a valid email address in the From field."); } else { $message = $captchalib->getErrors(); } Feedback::error(['mes' => $message, 'title' => tr('Invalid')]); } else { $body = tr("%0 sent you a message:", $from) . "\n" . $body; $messulib->post_message( $prefs['contact_user'], $from, $_POST['to'], '', $_POST['subject'], $body, $priority ); $contact_name = $userlib->get_user_preference($prefs['contact_user'], 'realName'); if ($contact_name == '') { $contact_name = $prefs['contact_user']; } $message = tra('Message sent to') . ': ' . $contact_name . '
'; $smarty->assign('sent', 1); Feedback::success($message); } } $email = $userlib->get_user_email($prefs['contact_user']); if ($email == '') { $email = $userlib->get_admin_email(); } $smarty->assign('email0', $email); $email = TikiMail::scrambleEmail($email, $tikilib->get_user_preference('admin', "email is public")); $smarty->assign('email', $email); $smarty->assign('priority', $priority); $smarty->assign('from', $from); $smarty->assign('subject', $subject); $smarty->assign('body', $body); $smarty->assign('mid', 'tiki-contact.tpl'); $smarty->display("tiki.tpl");