I'm receiving an error with the email form not going through and receiving an error message. I've checked for parse and syntax errors and didn't come across any. I think that I need to upgrade the email form from php to smtp email settings, but not sure where exactly to start. Has anyone navigated this before and any tips on troubleshooting this issue? Could it be something else that is causing the error message?
<?php
/*
=== Copyright (c) x2cms.com 2011 === BUILDER_VERSION:12
*/
if (!defined("BASE_PATH")) define('BASE_PATH', isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : substr(str_replace('\\\\','\\',$_SERVER['PATH_TRANSLATED']),0, -1*strlen($_SERVER['SCRIPT_NAME'])));
/* initialize a session. */
session_start();
require("mailer.php");
require("template-loader.php");
require("settings-loader.php");
$settings['captcha_required'] = array_key_exists('captcha',$_POST);
// disable magic quotes
// --------------------------------------------------------------------------------------------
// languages
// --------------------------------------------------------------------------------------------
// load language
read_language_xml(BASE_PATH.'/emaileverything.php.xml');
// add default language for form
add_language_def('email_message','The following information was posted from your %s form');
add_language_def('email_subject','%s form results');
add_language_def('error_required','is a required field');
add_language_def('mail_sender','Mail sender IP address:');
add_language_def('go_back','« back');
add_language_def('error_captcha','The validation code you entered was invalid');
add_language_def('error_no_email_to','You must enter an email address');
add_language_def('error_no_email_from','You must enter an email address to send to.');
add_language_def('error_no_message','You must enter a message');
add_language_def('success_message','Thank you, the form has been processed successfully.');
add_language_def('error_message','The following error(s) occured: ');
// uploader
add_language_def('error_file_size','%s file is too big, the maximum file size is (%smb)');
add_language_def('file_link','File Link');
add_language_def('error_upload','Unable to save uploaded file, please check site uploaded directory and permissions.');
add_language_def('error_file_type','allowed files are %s. Yours was %s.');
// settings
// --------------------------------------------------------------------------------------------
$settings['form_id'] = ''; // form identifier
$settings['form_name'] = $_SERVER['HTTP_HOST']; // the name of the form used, defaults to the script address
$settings['confirmation_message'] = ''; // the confirmation message used with the template
$settings['confirmation_url'] = ''; // if specified we redirect to a confirmation page
$settings['email_subject'] = ''; // the email subject
$settings['email_to'] = ''; // who do we send the email to
$settings['email_from'] = ''; // the customer's email submitting the form
$settings['copy_mail_to_sender'] = 'false'; // whether we copy the form email to the mail sender $email_from
$settings['required_fields'] = ''; // required field names seperated by |
$settings['email_template'] = ''; // the email template to use
$settings['upload_max_size'] = '20'; // size in mb per file
$settings['upload_check_extension'] = 'false';
$settings['upload_allowed_extensions'] = 'jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx|ppt|pptx|zip'; // allowed file extensions
// general functions
// --------------------------------------------------------------------------------------------
if(!function_exists('str_ireplace'))
{
function str_ireplace($needle, $str, $haystack)
{
$needle = preg_quote($needle, '/');
return preg_replace("/$needle/i", $str, $haystack);
}
}
// ensure filename is in friendly format
function safe_filename($filename)
{
$filename = trim($filename);
$filename = str_replace("/", "", $filename);
$filename = str_replace("\\", "", $filename);
$filename = str_replace(">", "", $filename);
$filename = str_replace("<", "", $filename);
return $filename;
}
// check for required fields
function isRequired($field_name)
{
global $required_fieldsarr;
if(is_array($required_fieldsarr))
{
foreach ($required_fieldsarr as $required_field_name)
{
if(strtoupper($required_field_name) == strtoupper($field_name))
{
return true;
}
}
}
return false;
}
function get_file_extension($filename)
{
return end(explode(".", $filename));
}
// uploaded files
function uploadedFiles()
{
$returnStr = '';
$returnStr .= uploadFile("userfile");
for($i = 0; $i<10; $i++)
{
$returnStr .= uploadFile("userfile".$i);
}
return $returnStr;
}
function uploadFile($fieldName)
{
global $error_message, $_FILES, $language, $settings;
if(!isset($_FILES[$fieldName]))
{
return;
}
$allowed_file_ext_arr = explode("|", $settings['upload_allowed_extensions']);
$returnStr = '';
// try array of files first
if(is_array($_FILES[$fieldName]))
{
foreach ($_FILES[$fieldName]["error"] as $key => $error)
{
if ($error == UPLOAD_ERR_OK)
{
$file_type = $_FILES[$fieldName]['type'][$key];
$file_size = $_FILES[$fieldName]['size'][$key];
$tmp_name = $_FILES[$fieldName]["tmp_name"][$key];
$name = $_FILES[$fieldName]["name"][$key];
$error = "";
// check file size
if ($file_size > ((int)$settings['upload_max_size'] * 1024 * 1024))
{
$error .= sprintf($language['error_file_size'], $name, $settings['upload_max_size']).'<br/>';
}
// check file type
if($settings['upload_check_extension'] == 'true')
{
if (!in_array(get_file_extension($name),$allowed_file_ext_arr))
{
$error .= sprintf($language['error_file_type'], $settings['upload_allowed_extensions'], $file_type).'<br/>';
}
}
if ($error == "")
{
if(is_uploaded_file($tmp_name))
{
// sanatize file name
$name = preg_replace(array("/\s+/", "/[^-\.\w]+/"), array("_", ""), trim($name));
if(move_uploaded_file($tmp_name, "uploaded/$name"))
{
$returnStr .= "<tr><td>".$language['file_name']."</td><td><a href='http://".$_SERVER['HTTP_HOST']."/uploaded/$name'>$name</a></td></tr>";
}
else
{
$error_message = $language['error_upload'].'<br/>';
}
}
}
else
{
$error_message .= $error;
}
}
}
}
else // try single file
{
if($_FILES[$fieldName]["error"] == UPLOAD_ERR_OK)
{
$file_type = $_FILES[$fieldName]['type'][$key];
$file_size = $_FILES[$fieldName]['size'][$key];
$tmp_name = $_FILES[$fieldName]["tmp_name"][$key];
$name = $_FILES[$fieldName]["name"][$key];
$error = "";
// check file size
if ($file_size > ((int)$settings['upload_max_size'] * 1024 * 1024))
{
$error .= sprintf($language['error_file_size'], $key, ($maxSize/1000)).'<br/>';
}
// check file type
if($settings['upload_check_extension'] == 'true')
{
if (!in_array(get_file_extension($name),$allowed_file_ext_arr))
{
$error .= $key." Allowed files are ".$settings['upload_allowed_extensions'].". Yours was ".$file_type."<br/>";
}
}
if ($error == "")
{
if(is_uploaded_file($tmp_name))
{
// sanatize file name
$name = preg_replace(array("/\s+/", "/[^-\.\w]+/"), array("_", ""), trim($name));
if(move_uploaded_file($tmp_name, "uploaded/$name"))
{
$returnStr .= "<tr><td>".$language['file_name']."</td><td><a href='http://".$_SERVER['HTTP_HOST']."/uploaded/$name'>$name</a></td></tr>";
}
else
{
$error_message = $language['error_upload'].'<br/>';
}
}
}
else
{
$error_message .= $error;
}
}
}
return $returnStr;
}
// read POST and GET data
// --------------------------------------------------------------------------------------------
// did we specify a form name in either GET OR POST
// get the form id
if(trim($_POST['id']) != '')
{
$settings['form_id'] = trim($_POST['id']);
}
if(trim($_GET['id']) != '')
{
$settings['form_id'] = trim($_GET['id']);
}
// 5.1 get parameters from XML
load_config('emaileverything-settings.xml');
load_config($settings['form_id'].'.xml');
// parse_settings_xml(safe_filename($settings['form_id']).'-settings.xml');
// check_referrer();
// get parameters from POST, POST overwrites settings from XML
if(trim($_POST['FormName']) != '')
{
$settings['form_name'] = trim($_POST['FormName']);
}
if(trim($_POST['EmailSubject']) != '')
$settings['email_subject'] = trim($_POST['EmailSubject']);
if(trim($_POST['EmailTo']) != '')
$settings['email_to'] = trim($_POST['EmailTo']);
if(trim($_POST['email']) != '')
$settings['email_from'] = trim($_POST['email']);
if(trim($_POST['OKMessage']) != '')
$settings['confirmation_message'] = trim($_POST['OKMessage']);
if(trim($_POST['OKURL']) != '')
$settings['confirmation_url'] = trim($_POST['OKURL']);
if(trim($_POST['CopyToSender']) != '')
$settings['copy_mail_to_sender'] = trim($_POST['CopyToSender']);
if(trim($_POST['UseTemplate']) != '')
$settings['email_template'] = trim($_POST['UseTemplate']);
if(trim($_POST['TemplateID']) != '')
$settings['template_id'] = trim($_POST['TemplateID']);
if(trim($_POST['RequiredFields']) != '')
$settings['required_fields'] = trim($_POST['RequiredFields']);
// alternative field names from trellix
if(trim($_POST['tlx_Subject']) != '')
$settings['email_subject'] = trim($_POST['tlx_Subject']);
if($_POST['tlx_EmailTo'] != '')
$settings['email_to'] = trim($_POST['tlx_EmailTo']);
if($_POST['tlx_OKMessage'] != '')
$settings['confirmation_message'] = trim($_POST['tlx_OKMessage']);
// build the email
// --------------------------------------------------------------------------------------------
// now we do some work with our required fields, split on | to get each required field name
$required_fieldsarr = explode("|", $settings['required_fields']);
$error_message = '';
// check required fields
foreach ($_POST as $key => $val)
{
// see if field is required
if(isRequired($key) && ($val == ''))
{
$error_message .= $key." ".$language['error_required'].".<br/>";
}
}
// build email message
if($settings['email_template'] != '') // are we using a email template
{
// safe file name
$settings['email_template'] = safe_filename($settings['email_template']);
// check to see if template exists
if(file_exists($settings['email_template']))
{
$email_message = file_get_contents($settings['email_template']);
// replace key with value
foreach ($_POST as $key => $val)
{
$email_message = str_ireplace('{'.$key.'}', $val, $email_message);
}
// remove remaining
$email_message = preg_replace('/\{(\w*)\}/', '', $email_message);
}
}
else
{
$email_message = sprintf($language['email_message'],$settings['form_name']);
$email_message .= '<br/><br/><table cellpadding="5" cellspacing="5" border="1"><tr><th>Field Name</th><th>Value</th></tr>';`
foreach ($_POST as $key => $val)