Having issues with contact form

2 replies · opened Jun 7, 2021

JjackricemusicJun 7, 2021

When I enter the fields of the contact form it creates a loading circle that never ends. I have tried both regular and SMTP. I have turned off less secure in google.

<?php

/*-------------------------------------------------

Form Processor Plugin
by SemiColonWeb

---------------------------------------------------*/

/-------------------------------------------------
PHPMailer Initialization
---------------------------------------------------
/

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';

/-------------------------------------------------
Receiver's Email
---------------------------------------------------
/

$toemails = array();

$toemails[] = array(
'email' => 'jackricemusic@gmail.com', // Your Email Address
'name' => 'Jack' // Your Name
);

/-------------------------------------------------
Sender's Email
---------------------------------------------------
/

$fromemail = array(
'email' => 'no-reply@thenewfarmsf.com', // Company's Email Address (preferably currently used Domain Name)
'name' => 'GREENCITYPROJECT' // Company Name
);

/-------------------------------------------------
reCaptcha
---------------------------------------------------
/

// Add this only if you use reCaptcha with your Contact Forms
$recaptcha_secret = ''; // Your reCaptcha Secret

/-------------------------------------------------
PHPMailer Initialization
---------------------------------------------------
/

$mail = new PHPMailer();

/* Add your SMTP Codes after this Line /
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = "jackricemusic@gmail.com";
$mail->Password = "
*****";

// End of SMTP

/-------------------------------------------------
Form Messages
---------------------------------------------------
/

$message = array(
'success' => 'We have successfully received your Message and will get Back to you as soon as possible.',
'error' => 'Email could not be sent due to some Unexpected Error. Please Try Again later.',
'error_bot' => 'Bot Detected! Form could not be processed! Please Try Again!',
'error_unexpected' => 'An unexpected error occured. Please Try Again later.',
'recaptcha_invalid' => 'Captcha not Validated! Please Try Again!',
'recaptcha_error' => 'Captcha not Submitted! Please Try Again.'
);

/-------------------------------------------------
Blocked Words from Forms
---------------------------------------------------
/

$spam_keywords = array(
'viagra',
'cialis',
'levitra'
);

/-------------------------------------------------
Form Processor
---------------------------------------------------
/

if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {

$prefix		= !empty( $_POST['prefix'] ) ? $_POST['prefix'] : '';
$submits	= $_POST;
$botpassed	= false;

$message_form					= !empty( $submits['message'] ) ? $submits['message'] : array();
$message['success']				= !empty( $message_form['success'] ) ? $message_form['success'] : $message['success'];
$message['error']				= !empty( $message_form['error'] ) ? $message_form['error'] : $message['error'];
$message['error_bot']			= !empty( $message_form['error_bot'] ) ? $message_form['error_bot'] : $message['error_bot'];
$message['error_unexpected']	= !empty( $message_form['error_unexpected'] ) ? $message_form['error_unexpected'] : $message['error_unexpected'];
$message['recaptcha_invalid']	= !empty( $message_form['recaptcha_invalid'] ) ? $message_form['recaptcha_invalid'] : $message['recaptcha_invalid'];
$message['recaptcha_error']		= !empty( $message_form['recaptcha_error'] ) ? $message_form['recaptcha_error'] : $message['recaptcha_error'];

/*-------------------------------------------------
	Bot Protection
---------------------------------------------------*/

if( isset( $submits[ $prefix . 'botcheck' ] ) ) {
	$botpassed = true;
}

if( !empty( $submits[ $prefix . 'botcheck' ] ) ) {
	$botpassed = false;
}

if( $botpassed == false ) {
	echo '{ "alert": "error", "message": "' . $message['error_bot'] . '" }';
	exit;
}

/*-------------------------------------------------
	SPAM Protection
---------------------------------------------------*/

function spam_keyword_check( $submitted, $spamwords ) {
	if( is_array( $submitted ) ) {
		return false;
	}
	if( !is_array( $spamwords ) ) $spamwords = array( $spamwords );
	foreach( $spamwords as $spamstring ) {
		if( ( $position = stripos( $submitted, $spamstring ) ) !== false ) return $position;
	}
	return false;
}

foreach( $submits as $spam_submit ) {
	if( spam_keyword_check( $spam_submit, $spam_keywords ) ) {
		// A successful message is displayed to the submitter that makes him think that the Form has been sent so that he cannot modify the keywords to prevent SPAM
		echo '{ "alert": "success", "message": "' . $message['success'] . '" }';
		exit;
	}
}

/*-------------------------------------------------
	reCaptcha
---------------------------------------------------*/

if( isset( $submits['g-recaptcha-response'] ) ) {

	$recaptcha_data = array(
		'secret' =&gt; $recaptcha_secret,
		'response' =&gt; $submits['g-recaptcha-response']
	);

	$recap_verify = curl_init();
	curl_setopt( $recap_verify, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify" );
	curl_setopt( $recap_verify, CURLOPT_POST, true );
	curl_setopt( $recap_verify, CURLOPT_POSTFIELDS, http_build_query( $recaptcha_data ) );
	curl_setopt( $recap_verify, CURLOPT_SSL_VERIFYPEER, false );
	curl_setopt( $recap_verify, CURLOPT_RETURNTRANSFER, true );
	$recap_response = curl_exec( $recap_verify );

	$g_response = json_decode( $recap_response );

	if ( $g_response-&gt;success !== true ) {
		echo '{ "alert": "error", "message": "' . $message['recaptcha_invalid'] . '" }';
		exit;
	}
}

$template	= !empty( $submits['template'] ) ? $submits['template'] : 'html';
$html_title	= !empty( $submits['html_title'] ) ? $submits['html_title'] : 'Form Response';
$forcerecap	= ( !empty( $submits['force_recaptcha'] ) && $submits['force_recaptcha'] != 'false' ) ? true : false;
$replyto	= !empty( $submits['replyto'] ) ? explode( ',', $submits['replyto'] ) : false;

if( $forcerecap ) {
	if( !isset( $submits['g-recaptcha-response'] ) ) {
		echo '{ "alert": "error", "message": "' . $message['recaptcha_error'] . '" }';
		exit;
	}
}

/*-------------------------------------------------
	Auto-Responders
---------------------------------------------------*/

$autores	= ( !empty( $submits['autoresponder'] ) && $submits['autoresponder'] != 'false' ) ? true : false;
$ar_subject	= !empty( $submits['ar_subject'] ) ? $submits['ar_subject'] : 'Thanks for your Email';
$ar_title	= !empty( $submits['ar_title'] ) ? $submits['ar_title'] : 'Its so good to hear from You!';
$ar_message	= !empty( $submits['ar_message'] ) ? $submits['ar_message'] : 'Autoresponder Message';

preg_match_all('#\{(.*?)\}#', $ar_message, $ar_matches);
if( !empty( $ar_matches[1] ) ) {
	foreach( $ar_matches[1] as $ar_key =&gt; $ar_value ) {
		$ar_message = str_replace( '{' . $ar_value . '}' , $submits[ $ar_value ], $ar_message );
	}
}

$ar_footer	= !empty( $submits['ar_footer'] ) ? $submits['ar_footer'] : 'Copyrights &copy; ' . date('Y') . ' **SemiColonWeb**. All Rights Reserved.';

$mail-&gt;Subject = !empty( $submits['subject'] ) ? $submits['subject'] : 'Form Response from your Website';
$mail-&gt;SetFrom( $fromemail['email'] , $fromemail['name'] );

if( !empty( $replyto ) ) {
	if( count( $replyto ) &gt; 1 ) {
		$replyto_e = $submits[ $replyto[0] ];
		$replyto_n = $submits[ $replyto[1] ];
		$mail-&gt;AddReplyTo( $replyto_e , $replyto_n );
	} elseif( count( $replyto ) == 1 ) {
		$replyto_e = $submits[ $replyto[0] ];
		$mail-&gt;AddReplyTo( $replyto_e );
	}
}

foreach( $toemails as $toemail ) {
	$mail-&gt;AddAddress( $toemail['email'] , $toemail['name'] );
}

$unsets = array( 'prefix', 'subject', 'replyto', 'template', 'html_title', 'message', 'autoresponder', 'ar_subject', 'ar_title', 'ar_message', 'ar_footer', $prefix . 'botcheck', 'g-recaptcha-response', 'force_recaptcha', $prefix . 'submit' );

foreach( $unsets as $unset ) {
	unset( $submits[ $unset ] );
}

$fields = array();

foreach( $submits as $name =&gt; $value ) {

	if( empty( $value ) ) continue;

	$name = str_replace( $prefix , '', $name );
	$name = mb_convert_case( $name, MB_CASE_TITLE, "UTF-8" );

	if( is_array( $value ) ) {
		$value = implode( ', ', $value );
	}

	$fields[$name] = nl2br( $value );

}

$files = $_FILES;

foreach( $files as $file =&gt; $filevalue ) {

	if( is_array( $filevalue['name'] ) ) {

		$filecount = count( $filevalue['name'] );

		for( $f = 0; $f &lt; $filecount; $f++ ) {
			if ( isset( $_FILES[ $file ] ) && $_FILES[ $file ]['error'][ $f ] == UPLOAD_ERR_OK ) {
				$mail-&gt;IsHTML(true);
				$mail-&gt;AddAttachment( $_FILES[ $file ]['tmp_name'][ $f ], $_FILES[ $file ]['name'][ $f ] );
			}
		}

	} else {

		if ( isset( $_FILES[ $file ] ) && $_FILES[ $file ]['error'] == UPLOAD_ERR_OK ) {
			$mail-&gt;IsHTML(true);
			$mail-&gt;AddAttachment( $_FILES[ $file ]['tmp_name'], $_FILES[ $file ]['name'] );
		}

	}

}

$response = array();

foreach( $fields as $fieldname =&gt; $fieldvalue ) {
	if( $template == 'text' ) {
		$response[] = $fieldname . ': ' . $fieldvalue;
	} else {
		$fieldname = '&lt;tr&gt;
							&lt;td style="font-size: 16px; line-height: 24px; font-weight: bold; padding: 0 0 5px 0;" align="left"&gt;' . $fieldname . '&lt;/td&gt;
						&lt;/tr&gt;';
		$fieldvalue = '&lt;tr&gt;
							&lt;td style="font-size: 16px; line-height: 24px; color: #777777; padding: 0 15px 30px 0;" align="left"&gt;' . $fieldvalue . '&lt;/td&gt;
						&lt;/tr&gt;';
		$response[] = $fieldname . $fieldvalue;
	}
}

$referrer = $_SERVER['HTTP_REFERER'] ? '&lt;br&gt;&lt;br&gt;&lt;br&gt;This Form was submitted from: ' . $_SERVER['HTTP_REFERER'] : '';

$html_before = '&lt;table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" bgcolor="#eeeeee" style="width: 100%; height: 100%; padding: 50px 0 50px 0;"&gt;
			&lt;tr&gt;
				&lt;td align="center" valign="top"&gt;
					&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" bgcolor="#ffffff" style="width: 84%;"&gt;
						&lt;tr&gt;
							&lt;td align="center" valign="top"&gt;
								';

$html_after = '&lt;/td&gt;
						&lt;/tr&gt;
					&lt;/table&gt;
				&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;';

if( $template == 'text' ) {
	$body = implode( "&lt;br&gt;", $response ) . $referrer;
} else {
	$html = $html_before . '&lt;!-- / Header --&gt;
								&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" style="width: 84%;"&gt;
									&lt;tr&gt;
										&lt;td style="padding: 30px 0 30px 0; border-bottom: solid 1px #eeeeee; font-size: 30px; font-weight: bold; text-decoration: none; color: #000000;" align="left"&gt;
											' . $html_title . '
										&lt;/td&gt;
									&lt;/tr&gt;
								&lt;/table&gt;

								&lt;!-- / Sub-Header --&gt;
								&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" style="width: 84%; padding: 60px 0 30px 0;""&gt;
									' . implode( '', $response ) . '
								&lt;/table&gt;

								&lt;!-- / Footer --&gt;
								&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" align="center"&gt;
									&lt;tr&gt;
										&lt;td align="center"&gt;
											&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" align="center" style="border-top: 1px solid #eeeeee; width: 84%;"&gt;
												&lt;tr&gt;
													&lt;td style="color: #d5d5d5; text-align: center; font-size: 12px; padding: 30px 0 30px 0; line-height: 22px;"&gt;' . strip_tags( $referrer ) . '&lt;/td&gt;
												&lt;/tr&gt;
											&lt;/table&gt;
										&lt;/td&gt;
									&lt;/tr&gt;
								&lt;/table&gt;
								' . $html_after;

	$body = $html;
}

if( $autores && !empty( $replyto_e ) ) {
	$autoresponder = new PHPMailer();

	/* Add your Auto-Responder SMTP Codes after this Line */

	// End of Auto-Responder SMTP

	$autoresponder-&gt;SetFrom( $fromemail['email'] , $fromemail['name'] );
	if( !empty( $replyto_n ) ) {
		$autoresponder-&gt;AddAddress( $replyto_e , $replyto_n );
	} else {
		$autoresponder-&gt;AddAddress( $replyto_e );
	}
	$autoresponder-&gt;Subject = $ar_subject;

	$ar_body = $html_before . '&lt;!-- / Header --&gt;
				&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" style="width: 84%;"&gt;
					&lt;tr&gt;
						&lt;td style="padding: 30px 0 30px 0; border-bottom: solid 1px #eeeeee; font-size: 30px; font-weight: bold; text-decoration: none; color: #000000;" align="left"&gt;
							' . $ar_title . '
						&lt;/td&gt;
					&lt;/tr&gt;
				&lt;/table&gt;

				&lt;!-- / Sub-Header --&gt;
				&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" style="width: 84%; padding: 60px 0 30px 0;""&gt;
					&lt;tr&gt;
						&lt;td style="font-size: 16px; line-height: 26px; color: #777777; padding: 0 15px 30px 0;" align="left"&gt;' . $ar_message . '&lt;/td&gt;
					&lt;/tr&gt;
				&lt;/table&gt;

				&lt;!-- / Footer --&gt;
				&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" align="center"&gt;
					&lt;tr&gt;
						&lt;td align="center"&gt;
							&lt;table border="0" cellpadding="0" cellspacing="0" width="84%" align="center" style="border-top: 1px solid #eeeeee; width: 84%;"&gt;
								&lt;tr&gt;
									&lt;td style="color: #d5d5d5; text-align: center; font-size: 12px; padding: 30px 0 30px 0; line-height: 22px;"&gt;' . $ar_footer . '&lt;/td&gt;
								&lt;/tr&gt;
							&lt;/table&gt;
						&lt;/td&gt;
					&lt;/tr&gt;
				&lt;/table&gt;
				' . $html_after;

	$autoresponder-&gt;MsgHTML( $ar_body );
}

$mail-&gt;MsgHTML( $body );
$mail-&gt;CharSet = "UTF-8";
$sendEmail = $mail-&gt;Send();

if( $sendEmail == true ):

	if( $autores && !empty( $replyto_e ) ) {
		$send_arEmail = $autoresponder-&gt;Send();
	}

	echo '{ "alert": "success", "message": "' . $message['success'] . '" }';
else:
	echo '{ "alert": "error", "message": "' . $message['error'] . '&lt;br&gt;&lt;br&gt;**Reason:**&lt;br&gt;' . $mail-&gt;ErrorInfo . '" }';
endif;

} else {
echo '{ "alert": "error", "message": "' . $message['error_unexpected'] . '" }';
}

?>

SSemicolon WebSTAFFJun 7, 2021

Hello,

We have just checked out your Website and the Form Processor: https://www.thenewfarmsf.org/include/form.php is returning a 500 Internal Server Error which is an indication that there is a Server Configuration issue.

Firstly, please make sure that your PHP Version is more than 5.6 or preferably the Latest Version.

If you are still facing further issues, the please consider adding the .customjs Class to the .form-widget Element in the HTML File and then following code at the very top of your include/form.php File:
[ch_pre type="php"]error_reporting(E_ALL);[/ch_pre]

which should display all the possible errors. Please notify us about the Error Message you see, after going through the process above, so that we can provide you with more assistance on this. Thanks for your Patience!

Meanwhile, do let us know if we can help you with anything else or if you find any further issues with Canvas.

SSemicolon WebSTAFFJun 7, 2021

We have just checked this out again and it appears that the Contact Forms are sending the Form Responses successfully.

Can you please confirm?

Have the same question, or something new?

Sign in to the Canvas dashboard to reply or open your own topic. Canvas owners get direct help from the SemiColonWeb team.

Reply on the dashboard