aristides
By:
aristides

500 error sending AJAX/PHP form with LAMP on Ubuntu

August 14, 2014 6.5k views

I'm trying to send a form using AJAX and a php script but I keep getting a 500 error. Dev tools takes me to this line in jQuery -

xhr.send( options.hasContent && options.data || null );

I'm seeing that this could be a cross-domain request issue but I'm not seeing a reason why, any ideas?

$(function() {
  $(".button").click(function() {

    var message = $("textarea#message").val();
    var email = $("input#email").val();   
    var name = $("input#name").val();
    var dataString = 'name='+ name + '&email=' + email + '&message=' + message;

    $.ajax({
      type: 'POST',
      url: "contact.php",
      data: dataString,
      success: function() {
        $('#form').html("<div id='thanks-message'></div>");
        $('#thanks-message').html("<h2>Thank You!</h2>")
        .append("<p>I'll be in touch soon.</p>")
        .hide()
        .fadeIn(1500);
    }
});
    return false;
});

-

<?php

$to_email = "hello@email.com";

$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

$subject = "[Contact Form] " . $_POST["subject"];


function isValidEmail($email) {
    return strpos($email, "@") !== false;
}

if($name != "" && $email != "" && $message != "" && isValidEmail($email)) {

    $full_message = "Name : ". $name . "\n";
    $full_message .= "Email : ". $email . "\n";
    $full_message .= "Message :\n\n". $message . "\n"

    mail($to_email, $subject, $full_message);
    header("Location: contact.html");
    exit();
}

die("Your data is invalid.");

?>
3 comments
1 Answer

it outputs

PHP Notice: Undefined index: - for the name, email, message

PHP Parse error: syntax error, unexpected 'mail' (T_STRING)

  • You have a missing comma:

        $full_message .= "Message :\n\n". $message . "\n"
    

    should be

        $full_message .= "Message :\n\n". $message . "\n";
    
Have another answer? Share your knowledge.