Form submission problem

Ok this is going to be a little long winded and i’m not sure if it should be in javascript or php, I have a contact form as follows:

<form action="contact.php" method="POST" id='contact_form'>
				<p><label for="name">Name</label>
				<input type='text' name='name' id='name' /></p>
				<div class="clear"></div>
				<p id='name_error' class='error'>Enter your name</p>
                
				<p><label for="email">Email</label>
				<input type='text' name='email' id='email' /></p>
				<div class="clear"></div>
				<p id='email_error' class='error'>Enter a valid email address</p>
				
				<p><label for="telephone">Telephone</label>
				<input type='text' name='telephone' id='telephone' /></p>
				<div class="clear"></div>
				<p id='subject_error' class='error'>Enter your telephone number</p>
                
                <p><label for="message">Details</label>
				<textarea name='message' id='message' rows="30" cols="30"></textarea></p>
				<div class="clear"></div>
				<p id='message_error' class='error'>Enter your message</p>
                
                <p id='mail_success' class='success'>Thank you. We will be in contact soon.</p>
				<p id='mail_fail' class='error'>Sorry, an error has occured. Please try again later.</p>

				<div id="button">
					<input type='submit' id='send_message' class="button" value='Submit' />
                </div>
			</form>

The Javascript:

$(document).ready(function(){
			$('#send_message').click(function(e){
				
				//stop the form from being submitted
				e.preventDefault();
				
				/* declare the variables, var error is the variable that we use on the end
				to determine if there was an error or not */
				var error = false;
				var name = $('#name').val();
				var email = $('#email').val();
				var telephone = $('#telephone').val();
				var message = $('#message').val();
				
				
				if(name.length == 0){
					var error = true;
					$('#name_error').fadeIn(500);
				}else{
					$('#name_error').fadeOut(500);
				}
				if(email.length == 0 || email.indexOf('@') == '-1'){
					var error = true;
					$('#email_error').fadeIn(500);
				}else{
					$('#email_error').fadeOut(500);
				}
				if(telephone.length == 0){
					var error = true;
					$('#subject_error').fadeIn(500);
				}else{
					$('#subject_error').fadeOut(500);
				}
				if(message.length == 0){
					var error = true;
					$('#message_error').fadeIn(500);
				}else{
					$('#message_error').fadeOut(500);
				}
				
				//now when the validation is done we check if the error variable is false (no errors)
				if(error == false){
					//disable the submit button to avoid spamming
					//and change the button text to Sending...
					$('#send_message').attr({'disabled' : 'true', 'value' : 'Sending...' });
					
					//we submit it to contact.asp
					$.post("contact.php", $("#contact_form").serialize(),function(result){
						//and after the ajax request ends we check the text returned
						if($.trim(result) == 'sent'){
						   $('#button').remove();
						   $('#mail_fail').fadeOut(500);
						   $('#mail_success').fadeIn(500);
						}else{
							//show the mail failed div
							$('#mail_fail').fadeIn(500);
							//reenable the submit button by removing attribute disabled and change the text back to Send The Message
							$('#send_message').removeAttr('disabled').attr('value', 'Submit');
						}
					});
				}
			});    
		});

and the PHP:

<?php

$EmailFrom = Trim(stripslashes($_POST['email'])); 
$EmailTo = "joe@bloggs.com";
$Subject = "Contact Form Message";
$name = Trim(stripslashes($_POST['name'])); 
$email = Trim(stripslashes($_POST['email']));
$telephone = Trim(stripslashes($_POST['telephone'])); 
$message = Trim(stripslashes($_POST['message'])); 


$validationOK=true;
if (Trim($name)=="") $validationOK=false;
if (Trim($email)=="") $validationOK=false;
if (Trim($telephone)=="") $validationOK=false;
if (Trim($message)=="") $validationOK=false;
if (!$validationOK) {
  print "failed";
  exit;
}


$Body = "";
$Body .= "name: ";
$Body .= $name;
$Body .= "\
";
$Body .= "email: ";
$Body .= $email;
$Body .= "\
";
$Body .= "telephone: ";
$Body .= $telephone;
$Body .= "\
";
$Body .= "message: ";
$Body .= $message;
$Body .= "\
";


$success = mail($EmailTo, $Subject, $Body, "From: <$email>");

if ($success){
  print "sent";
}
else{
  print "failed";
}
?>


When filled out i receive the “Sorry, an error has occured. Please try again later.” message but don’t see where i have gone wrong?

Thanks in advance for any help.

$.trim(result) == 'sent'

So, if the php script doesn’t return ‘sent’ you get the error you are seeing. This means that for some reason the php script returns something else.
Display the value of ‘result’ to see what is being returned by the php script.

not sure I follow you, It is giving me a failed response but i’m not sure why. . .

I don’t know why either. I only know that you wrote that script in a way that the message appears when the php script you call doesn’t return ‘sent’. But the error message is so vague it’s of no use when you’re debugging.

The first thing you can do to debug is displaying the value the php script is returning to the javascript.
Then you might also put some other echoes in the php script (just for debugging, when you’ve finished you delete them again) to see what is being executed and where it goes wrong.

Try setting the method to $_GET.
Then post the URL.

Can you explain how / where i post the url please?

My bad word choice. Not _POST but copy the URL from the web browser to the forum so we can see it.

Oh, Thank you - the URL does not change.

OK. Do you still get the email?

not getting the emails unfortunately!

Try removing “from” from the mail function.

$success = mail($EmailTo, $Subject, $Body); 

That is all I can think of.

Its strange as it appears the very same script is working on another site i did. . .