-1

I am trying to use the below contact form but I am getting a 'No arguments provided error, can anyone take a look at my code to see I have gone wrong.

Here is my code.

<form action="mail/contact_me.php" id="email-form " name="email-form" data-name="Email Form" class="form" method="POST">
                <label for="name ">Name:</label><input type="text " class="w-input " maxlength="256 " name="name " data-name="Name " placeholder="Enter full name " id="name " required=" ">
                <label for="email ">Email Address:</label><input type="email " class="w-input " maxlength="256 " name="email " data-name="Email " placeholder="Enter email address " id="email " required=" ">
                <label for="Phone ">Phone:</label><input type="tel " class="w-input " maxlength="256 " name="Phone " data-name="Phone " placeholder="Enter phone number " id="Phone " required=" ">
                <label for="Message ">Message:</label>
                <input type="text " class="text-field w-input " maxlength="256 " name="Message " data-name="Message " placeholder="Please enter a message detailing your exact needs " id="Message " required=" ">
                <!-- <button class="submit-button w-button" type="submit " name="submit ">Submit</button> -->
                <div class="row">
                    <div class="form-group col-xs-12">
                        <button type="submit" class="submit-button w-button">Send</button>
                    </div>
                </div>
   </form>


<?php
// Check for empty fields
if(empty($_POST['name'])        ||
   empty($_POST['email'])       ||
   empty($_POST['phone'])       ||
   empty($_POST['message']) ||
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
   {
    echo "No arguments Provided!";
    return false;
   }

$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));

// Create the email and send the message
$to = 'nigel.smith@nswd.co.uk'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
$email_subject = "Website Contact Form:  $name";
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
$headers = "From: nigel.smith@nswd.co.uk\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
$headers .= "Reply-To: $email_address"; 
mail($to,$email_subject,$email_body,$headers);
return true;            
?>

Thanks

Nigel Smith
  • 189
  • 1
  • 1
  • 5

1 Answers1

2

Input name is case sensitive, and there is a whitespace on Phone and Message name

name="Phone " 

And

name="Message " 
Illya
  • 1,268
  • 1
  • 5
  • 16