0

I am having trouble with my contact form (from bootstrap). the php code as well as the html code are as seen below. Whenever I try the contact form, the body will be empty. Am I missing anything? This is the html code:

<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
              <div class="row-fluid">
                <div class="span5">
                    <label>First Name</label>
                    <input type="text" class="input-block-level" required="required" placeholder="Your First Name">
                    <label>Last Name</label>
                    <input type="text" class="input-block-level" required="required" placeholder="Your Last Name">
                    <label>Email Address</label>
                    <input type="text" class="input-block-level" required="required" placeholder="Your email address">
                </div>
                <div class="span7">
                    <label>Message</label>
                    <textarea name="message" id="message" required="required" class="input-block-level" rows="8"></textarea>
                </div>

            </div>
            <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button>
            <p> </p>

        </form>

This is the PHP code:

<?php
header('Content-type: application/json');
$status = array(
    'type'=>'success',
    'message'=>'Email sent!'
);

$name = @trim(stripslashes($_POST['name'])); 
$email = @trim(stripslashes($_POST['email'])); 
$subject = @trim(stripslashes($_POST['subject'])); 
$message = @trim(stripslashes($_POST['message'])); 

$email_from = $email;
$email_to = 'mail@luckystarmaids.com';

$body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');

echo json_encode($status);
die;
Alicia Soh
  • 67
  • 1
  • 1
  • 5

2 Answers2

0

Your name and email form elements don't have name attributes. Without them, they won't be posted to the form's action1, 2.

Add names to your inputs:

<input type="text" name="first_name" class="input-block-level" required="required" placeholder="Your Last Name">

Also you will need to handle first and last name in your PHP code, at the moment you're only looking for name.

Community
  • 1
  • 1
scrowler
  • 24,273
  • 9
  • 60
  • 92
  • Thank you, I have edited to what you have suggested. However, it still does not work.. the $email, $message, etc are still empty. – Alicia Soh Dec 18 '15 at 03:13
0
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="">
  <div class="row-fluid">
        <div class="span5">
            <label>First Name</label>
            <input name=firstname type="text" class="input-block-level" required="required" placeholder="Your First Name">
            <label>Last Name</label>
            <input name=lastname type="text" class="input-block-level" required="required" placeholder="Your Last Name">
            <label>Email Address</label>
            <input name=email type="text" class="input-block-level" required="required" placeholder="Your email address">
            <label>Subject</label>
            <input name=subject type="text" class="input-block-level" required="required" placeholder="Subject">
        </div>
        <div class="span7">
            <label>Message</label>
            <textarea name="message" id="message" required="required" class="input-block-level" rows="8"></textarea>
        </div>

    </div>

    <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button>
    <p> </p>
</form>

Try also to handle the data on the server. Check at least if the values are send:

        <?php

if ( isset( $_POST['firstname'] )
    && isset( $_POST['email'] )
    && isset( $_POST['subject'] ) 
    && isset( $_POST['message'] ) )
{


    $name = @trim(stripslashes($_POST['name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $subject = @trim(stripslashes($_POST['subject'])); 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = $email;
    $email_to = 'mail@luckystarmaids.com';

    $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $s

ubject . "\n\n" . 'Message: ' . $message;

$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
if ($success)
{
        echo json_encode(array(
            'success'=> true,
            'message'=>'Email sent, you recieve an email at ' . $email
        ));
}    
}
else
{
    echo json_encode(array(
        'success' => false,
        'message' => 'An error has occured, please try again.'
    ));

}
?>
Matt
  • 136
  • 2
  • 17