diff --git a/contact.php b/contact.php index c932f2218..50de803f6 100644 --- a/contact.php +++ b/contact.php @@ -14,7 +14,9 @@ require_once("class2.php"); //define('e_HANDLER', "e107_handlers/"); // security image may be disabled by removing the appropriate shortcodes from the template. $active = varset($pref['contact_visibility'], e_UC_PUBLIC); -if(!check_class($active)) +$contactInfo = trim(SITECONTACTINFO); + +if(!check_class($active) && empty($contactInfo)) { e107::getRedirect()->go(e_HTTP."index.php"); } @@ -53,11 +55,12 @@ if(isset($_POST['send-contactus'])) $error = ""; - $sender_name = $tp->toEmail($_POST['author_name'],TRUE,'RAWTEXT'); - $sender = check_email($_POST['email_send']); - $subject = $tp->toEmail($_POST['subject'],TRUE,'RAWTEXT'); - $body = $tp->toEmail($_POST['body'],TRUE,'RAWTEXT'); + $sender_name = $tp->toEmail($_POST['author_name'], true,'RAWTEXT'); + $sender = check_email($_POST['email_send']); + $subject = $tp->toEmail($_POST['subject'], true,'RAWTEXT'); + $body = $tp->toEmail($_POST['body'], true,'RAWTEXT'); + $email_copy = !empty($_POST['email_copy']) ? 1 : 0; // Check Image-Code if (isset($_POST['rand_num']) && !$sec_img->verify_code($_POST['rand_num'], $_POST['code_verify'])) @@ -66,25 +69,26 @@ if(isset($_POST['send-contactus'])) } // Check message body. - if(strlen(trim($_POST['body'])) < 15) + if(strlen(trim($body)) < 15) { $error .= LANCONTACT_12."\\n"; } // Check subject line. - if(varset($_POST['subject']) && strlen(trim($_POST['subject'])) < 2) + if(strlen(trim($subject)) < 2) { $error .= LANCONTACT_13."\\n"; } - if(!strpos(trim($_POST['email_send']),"@")) + if(!strpos(trim($sender),"@")) { $error .= LANCONTACT_11."\\n"; } -// Check email address on remote server (if enabled). +// Check email address on remote server (if enabled). XXX Problematic! + /* if ($pref['signup_remote_emailcheck'] && $error == '') { require_once(e_HANDLER."mail_validation_class.php"); @@ -101,6 +105,7 @@ if(isset($_POST['send-contactus'])) } } + */ // No errors - so proceed to email the admin and the user (if selected). if(empty($error)) @@ -145,6 +150,38 @@ if(isset($_POST['send-contactus'])) } + // ---------------------- + + $CONTACT_EMAIL = e107::getCoreTemplate('contact','email'); + + unset($_POST['contact_person'], $_POST['author_name'], $_POST['email_send'] , $_POST['subject'], $_POST['body'], $_POST['rand_num'], $_POST['code_verify'], $_POST['send-contactus']); + + if(!empty($_POST)) // support for custom fields in contact template. + { + foreach($_POST as $k=>$v) + { + $body .= $k.":\t".$tp->toEmail($v, true,'RAWTEXT')."\n"; + } + } + + if(!empty($CONTACT_EMAIL['subject'])) + { + $vars = array('CONTACT_SUBJECT'=>$subject,'CONTACT_PERSON'=>$send_to_name); + + if(!empty($_POST)) // support for custom fields in contact template. + { + foreach($_POST as $k=>$v) + { + $scKey = strtoupper($k); + $vars[$scKey] =$tp->toEmail($v, true,'RAWTEXT'); + } + } + + $subject = $tp->simpleParse($CONTACT_EMAIL['subject'],$vars); + } + + // ----------------------- + // Send as default sender to avoid spam issues. Use 'replyto' instead. $eml = array( 'subject' => $subject, @@ -155,11 +192,12 @@ if(isset($_POST['send-contactus'])) 'template' => 'default' ); + $message = e107::getEmail()->sendEmail($send_to, $send_to_name, $eml, false) ? LANCONTACT_09 : LANCONTACT_10; // $message = (sendemail($send_to,"[".SITENAME."] ".$subject, $body,$send_to_name,$sender,$sender_name)) ? LANCONTACT_09 : LANCONTACT_10; - if(isset($pref['contact_emailcopy']) && $pref['contact_emailcopy'] && $_POST['email_copy'] == 1) + if(isset($pref['contact_emailcopy']) && $pref['contact_emailcopy'] && $email_copy == 1) { require_once(e_HANDLER."mail.php"); sendemail($sender,"[".SITENAME."] ".$subject, $body,ADMIN,$sender,$sender_name); @@ -184,23 +222,35 @@ if(SITECONTACTINFO) $CONTACT_INFO = e107::getCoreTemplate('contact','info'); } - $text = $tp->parseTemplate($CONTACT_INFO, TRUE, vartrue($contact_shortcodes)); + $text = $tp->parseTemplate($CONTACT_INFO, true, vartrue($contact_shortcodes)); $ns -> tablerender(LANCONTACT_01, $text,"contact"); } -if(isset($pref['sitecontacts']) && $pref['sitecontacts'] != 255) + +if(check_class($active) && isset($pref['sitecontacts']) && $pref['sitecontacts'] != e_UC_NOBODY) { $contact_shortcodes = e107::getScBatch('contact'); // Wrapper support $contact_shortcodes->wrapper('contact/form'); - $text = $tp->parseTemplate($CONTACT_FORM, TRUE, $contact_shortcodes); + $text = $tp->parseTemplate($CONTACT_FORM, true, $contact_shortcodes); if(trim($text) != "") { $ns -> tablerender(LANCONTACT_02, $text, "contact"); } } +elseif($active == e_UC_MEMBER && ($pref['sitecontacts'] != e_UC_NOBODY)) +{ + $srch = array("[","]"); + $repl = array("",""); + $message = LANCONTACT_16; // "You must be [registered] and signed-in to use this form."; + + $ns -> tablerender(LANCONTACT_02, "