Here is my code:
<form method="post" action="/form.php" novalidate>
<input placeholder="Name (required)" type="text" name="fullname" />
<input placeholder="Subject (required)" type="text" name="subject" />
<input placeholder="Email (required)" type="email" name="email"/>
<textarea placeholder="Type your Message here... (required)" name="message"></textarea>`enter code here`
<button type="submit">Send</button>
</form>
<?php
function validateForm(){
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$name = trim(filter_input(INPUT_POST, "fullname", FILTER_SANITIZE_STRING));
$subject = trim(filter_input(INPUT_POST, "subject", FILTER_SANITIZE_STRING));
$email = trim(filter_input(INPUT_POST, "email", FILTER_SANITIZE_EMAIL));
$message = trim(filter_input(INPUT_POST, "message", FILTER_SANITIZE_SPECIAL_CHARS));
echo $name; // trying to debug this code by printing variables name, subject, email and message. Still nothing worked.
echo $subject;
echo $email;
echo $message;
if (empty($name) && empty($subject) && empty($email) && empty($message)){
echo "Please ensure all required fields are entered correctly";
exit;
}
if (!preg_match("/^[a-zA-Z ]{2,30}$/", $name) && !preg_match("/^[a-zA-Z0-9 ]{2,60}$/", $subject) &&
!filter_var($email, FILTER_VALIDATE_EMAIL)){
echo "Please ensure all required fields are entered correctly";
exit;
}
else{
$recipient = "hello@websitename.com";
$subject = "New contact from $name";
$email_content = "";
$email_content .= "Name: " . $name "n";
$email_content .= "Email: " . $email "n";
$email_content .= "Message:" $message "n";
$email_headers = "From: " $name, <$email>;
if (mail($recipent, $subject, $email_content, $email_headers)){
http_response_code(200);
echo "Thank you! Your message has been sent.";
exit;
}
else{
http_response_code(500);
echo "Something went wrong and we couldn't send your message";
exit;
}
}
}
else{
http_response_code(403);
echo "There was a problem with your submission, please try again";
exit;
}
}
?>
$(document).ready(function(){
$('form').submit(function(e){
e.preventDefault();
var url = $(this).attr("action");
var formData = $(this).serialize();
var formMessage = $("#form-message");
$.ajax({
type: "POST",
url: url,
data: formData,
success: function(response){
$("#contact-form").html("<p>Thanks! I will reply you soon.</p>");
}
}).fail(function(data){
$(formMessage).addClass('messageError');
if (data.responseText !== ""){
$(formMessage).text(data.responseText);
}
else{
$(formMessage).text("An error occured and your message could not be sent.");
}
});
});
I have been trying to implement AJAX PHP contact form submission but for some reasons i have been getting 500 internal server error of some reasons. I don't know why. Please help me. I appreciate
Aucun commentaire:
Enregistrer un commentaire