Page 1 of 1

Contact Form in HTML5 Taxi Theme - please help

Posted: Mon Jan 30, 2017 12:44 pm
by AshleighG
Hi, I am using a free template HTML5 Taxi Theme: https://www.templatemonster.com/free-te ... y.php#gref

I can't get the contact form or booking form to work

booking.php

Code: Select all

<?php
	$ownerEmail = $_POST["owner_email"];
	$headers = 'From:' . $_POST["sender"] . 'Content-Type: '. $_POST["sender"] .'; charset=UTF-8' . "\r\n";
	$subject = 'An order from your site visitor';
	$messageBody = "";	
	
	$arr=array();
	$arr=$_POST;
	foreach ($arr as $key => $value) {
	   echo "$key".': '."$value".'&';
	   if (($value != 'nope') && ($key != 'owner_email') && ($key != 'sender')) {
		   $messageBody .="$key" . ': '."$value" . "\n\n";
		}
	}
		
	try{
		echo $_POST['Email'];
		echo $subject;
		echo $messageBody;

		if(!mail($ownerEmail, $subject, $messageBody, $headers)){
			throw new Exception('mail failed');
		}else{
			echo 'mail sent';
		}
	}catch(Exception $e){
		echo $e->getMessage() ."\n";
	}
?>
TMForm.js

Code: Select all

//TMForm
(function($){
	$.fn.TMForm=function(opt){
		return this.each(TMForm)
		
		function TMForm(){
			var form=$(this)
			opt=$.extend({					
					okClass:'ok'
					,emptyClass:'empty'
					,invalidClass:'invalid'
					,successClass:'success'
					,onceVerifiedClass:'once-verified'
					,mailHandlerURL:'bat/MailHandler.php'					
					,successShowDelay:'4000'
					,stripHTML:true
				},opt)
				
			init()
			
			function init(){				
				form
					.on('submit',formSubmit)
					.on('reset',formReset)
					.on('focus','[data-constraints]',function(){
						$(this).parents('label').removeClass(opt.emptyClass)
					})
					.on('blur','[data-constraints]:not(.once-verified)',function(){
						$(this)
							.addClass(opt.onceVerifiedClass)
							.trigger('validate.form')
					})
					.on('keyup','[data-constraints].once-verified',function(){						
						$(this).trigger('validate.form')
					})					
				
				if($('[data-constraints]',form).length!==0)
					$('[data-constraints]',form)
						.regula('bind')
						.on('show.placeholder',function(){
							fieldDesolation($(this))
						})
						.on('validate.form',fieldValidate)
					
				
				$('[placeholder]',form).TMPlaceholder()
				
				$('[data-type=submit]',form)
					.click(function(){						
						form.trigger('submit')
						return false
					})
					
				$('[data-type=reset]',form)
					.click(function(){						
						form.trigger('reset')
						return false
					})
			}
			
			function fieldValidate(el){
				var el=$(this)
					,result=el.regula('validate')
					,isEmpty=false
					,isInvalid=false
					,isRequired=!!~el.data('constraints').indexOf('@Required')
				
				$.each(result,function(){
					if(this.constraintName==='Required')
						isEmpty=true
					else
						isInvalid=true
				})
				
				if(!el.hasClass(opt.onceVerifiedClass)&&!isEmpty)
					el.addClass(opt.onceVerifiedClass)
					
				if(isEmpty)
					el.parents('label').addClass(opt.emptyClass)
								
				if(isInvalid&&!isEmpty&&isRequired)
					el.parents('label')
						.removeClass(opt.emptyClass)
						.removeClass(opt.okClass)
						.addClass(opt.invalidClass)
						
				if(isInvalid&&!isRequired&&el.val())
					el.parents('label')
					.removeClass(opt.emptyClass)
					.removeClass(opt.okClass)
					.addClass(opt.invalidClass)
					
				if(!result.length)
					el.parents('label')
						.removeClass(opt.invalidClass)
						.removeClass(opt.emptyClass)
						.addClass(opt.okClass)
			}
			
			function fieldDesolation(el){
				el
					.removeClass(opt.onceVerifiedClass)
					.parents('label')
						.removeClass(opt.invalidClass)
						.removeClass(opt.emptyClass)
						.removeClass(opt.okClass)
			}
			
			function getValue(el){
				return el.val()||false
			}
			
			function formSubmit(){
				$('[data-constraints]',form).trigger('validate.form')
				
				if(!$('label.'+opt.invalidClass+',label.'+opt.emptyClass,form).length){					
					$.ajax({
						type:"POST"
						,url:opt.mailHandlerURL
						,data:{
							name:getValue($('label.name input'))
							,email:getValue($('label.email input'))
							,phone:getValue($('label.phone input'))
							,fax:getValue($('label.fax input'))
							,state:getValue($('label.state input'))
							,message:getValue($('label.message textarea'))
							,owner_email:opt.ownerEmail||'ash88leigh@hotmail.com'
							,stripHTML:opt.stripHTML
						}
						,success: function(e){							
							form.addClass(opt.successClass)
							setTimeout(function(){
								form
								.removeClass(opt.successClass)
								.trigger('reset')
							},opt.successShowDelay)
						}
					})					
				}				
				return false
			}
			
			function formReset(){
				fieldDesolation($('[data-constraints]',form))					
			}
		}
	}	
})(jQuery)

;(function($){
	$.fn.TMPlaceholder=function(opt){
		return this.each(function(){
			var th=$(this)
				,placeholder_text
				,placeholder
						
			opt=$.extend({
					placeholderClass:'_placeholder'
					,placeholderFocusedClass:'focused'
					,placeholderHiddenClass:'hidden'
				},opt)
				
			init()
			
			function init(){
				placeholder_text=th.attr('placeholder')
				placeholder=$(document.createElement('span'))
				placeholder
					.addClass(opt.placeholderClass)
					.css({				
						left:th.prop('offsetLeft')
						,top:th.prop('offsetTop')
						,width:th.width()
						,height:th.outerHeight()				
					})
					.text(placeholder_text)
					.appendTo(th.parent())				
					.click(function(){
						th.focus()
						return false
					})
					.on('contextmenu',function(){						
						th.trigger('hide.placeholder').focus()						
					})
				
				th
					.val('')
					.removeAttr('placeholder')
					.on('hide.placeholder',function(){
						placeholder.addClass(opt.placeholderHiddenClass)
					})
					.on('show.placeholder',function(){
						placeholder.removeClass(opt.placeholderHiddenClass)
					})
					.on('focus',function(){
						placeholder.addClass(opt.placeholderFocusedClass)
					})
					.on('blur',function(){
						var val=th.val()
						if(val===''||val===placeholder_text)
							th.val('')							
							,th.trigger('show.placeholder')
						placeholder.removeClass(opt.placeholderFocusedClass)
					})
					.on('keydown',function(e){												
						if(e.keyCode===32||e.keyCode>46)
							th.trigger('hide.placeholder')							
					})
					.on('keyup',function(){						
						if(th.val()===''){							
							th.trigger('show.placeholder')
							return false
						}else{							
							th.trigger('hide.placeholder')
						}
					})
					.parents('form').on('reset',function(){
						th.trigger('show.placeholder')						
					})
			}			
		})
	}
})(jQuery)
MailHandler.php

Code: Select all

<?php

	//SMTP server settings	
	$host = "smtp.host.com";
    $port = "587";
    $username = "";
    $password = "";
	
	
	$messageBody = "";
	
	if($_POST['name']!='false'){
		$messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['name']!='false'){
		$messageBody .= '<p>Country: ' . $_POST["country"] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['email']!='false'){
		$messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}else{
		$headers = '';
	}
	if($_POST['state']!='false'){		
		$messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['phone']!='false'){		
		$messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}	
	if($_POST['fax']!='false'){		
		$messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
		$messageBody .= '<br>' . "\n";
	}
	if($_POST['message']!='false'){
		$messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";
	}
	
	if($_POST["stripHTML"] == 'true'){
		$messageBody = strip_tags($messageBody);
	}
	
	if($host=="" or $username=="" or $password==""){
		$owner_email = $_POST["owner_email"];
		$headers = 'From:' . $_POST["email"] . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n";
		$subject = 'A message from your site visitor ' . $_POST["name"];
		
		try{
			if(!mail($owner_email, $subject, $messageBody, $headers)){
				throw new Exception('mail failed');
				}else{
				echo 'mail sent';
			}
			}catch(Exception $e){
			echo $e->getMessage() ."\n";
		}
	}else{	
		require_once 'Mail.php';

		$to = $_POST["owner_email"];
		$subject = 'A message from your site visitor ' . $_POST["name"];
		$headers = array (
		'From' => 'From:' . $_POST["email"] . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n",
		'To' => $to,
		'Subject' => $subject);
		
		$smtp = Mail::factory(
					'smtp',
					array (
						'host' => $host,
						'port' => $port,
						'auth' => true,
						'username' => $username,
						'password' => $password));

		$mail = $smtp->send($to, $headers, $messageBody);
		
		try{
			if(PEAR::isError($mail)){
				echo $mail->getMessage();
				}else{
				echo 'mail sent';
			}
			}catch(Exception $mail){
			echo $mail->getMessage() ."\n";
		}
	}	
?>
I get this error message:

PHP Warning: require_once(Mail.php): failed to open stream: No such file or directory

But there is no mail.php in any of the template files or in any of my directory.

Afrihost is my host

Can anyone help with this please :banghead: :banghead: :banghead: