0
votes

This bootstrap using html/php contact form sends me an email just fine, but without any of the users input information!

The email I received looks empty like this: Name: Email: Subject: Message:

The html for the form is:

	<section id="partner">
        <div class="container">
            <div class="center wow fadeInDown">        
                <h2><br>Contact</h2>
                <p class="lead">Send a general enquiry here or order your service here.</p>
            </div> 
            <div class="row contact-wrap"> 
                <div class="status alert alert-success" style="display: none"></div>
                <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
                    <div class="col-sm-5 col-sm-offset-1">
                        <div class="form-group">
                            <label>Name *</label>
                            <input type="text" name="name" class="form-control" required="required">
                        </div>
                        <div class="form-group">
                            <label>Email *</label>
                            <input type="email" name="email" class="form-control" required="required">
                        </div>
                        <div class="form-group">
                            <label>Phone</label>
                            <input type="number" class="form-control">
                        </div>
                        <div class="form-group">
                            <label>Company Name</label>
                            <input type="text" class="form-control">
                        </div>                        
                    </div>
                    <div class="col-sm-5">
                        <div class="form-group">
                            <label>Subject *</label>
                            <input type="text" name="subject" class="form-control" required="required">
                        </div>
                        <div class="form-group">
                            <label>Message *</label>
                            <textarea name="message" id="message" required="required" class="form-control" rows="8"></textarea>
                        </div>                        
                        <div class="form-group">
                            <button type="submit" name="submit" class="btn btn-primary btn-lg" required="required">Submit Message</button>
                        </div>
                    </div>
                </form> 
            </div><!--/.row-->
        </div><!--/.container-->
    </section><!--/#contact-page-->

The PHP for the form looks like this:

<?php
	header('Content-type: application/json');
	$status = array(
		'type'=>'success',
		'message'=>'Thank you for contact us. As early as possible  we will contact you '
	);

    $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 = '[email protected]';//replace with your email

    $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;

Why isn't it working properly? The message "thank you for contacting us" pops up fine and the email sends through, but non of the users information comes through.

2
Stop suppressing errors with @ and you might be able to find out why... - Karl

2 Answers

0
votes

Try to print the values you are sending. So use this:

var_dump( $_POST['name'] );
var_dump( $_POST['email'] );
etc...

Doing this, you will be able to see wether your fields are even posted correctly.

0
votes

the fields have no id param. in the post you get the "id" nor the "name"

    <label>Name *</label>
    <input type="text" id="name" class="form-control" required="required">
</div>
<div class="form-group">
    <label>Email *</label>
    <input type="email" id="email" class="form-control" required="required">