user2529658
user2529658

Reputation: 23

Form not returning data

I have a form on my site. When the user submits the form I get the email response but there is no form data returned. All I see is

Company:
Name:
Email:
Phone:

The form html is below:

<form method="post" action="send_survey.php" class="survey" >
            <header><a href="../index.html"><img src="../img/PTS_Survey_logo.jpg" alt="Patterson Tubular Services Logo"></a>
        Customer Survey</header>
        <fieldset>
                <section>
                    <label class="input">
                        <i class="icon-append icon-group"></i>
                        <input type="company" id="company" required placeholder="Company name">
                    </label>
                </section>
                <section>
                    <label class="input">
                        <i class="icon-append icon-user"></i>
                        <input type="name" id="name" required placeholder="Your name" >
                    </label>
                </section>
                <section>
                    <label class="input">
                        <i class="icon-append icon-envelope-alt"></i>
                        <input type="email" id="email" required placeholder="Your e-mail">
                    </label>
                </section>
                <section>
                    <label class="input">
                        <i class="icon-append icon-phone"></i>
                        <input type="phone" id="phone" placeholder="Your phone number">
                    </label>
                </section>

            </fieldset>
            <footer>
                <input id="submit" name="submit" type="submit" value="submit" class="button">Submit the survey</button>
            </footer>
        </form>

The php code is below:

<?php

/*Subject and email variables */

    $emailSubject = 'PTS Site Test';
    $emailTo = '[email protected]';

/* Gather form information */

    $company = $_POST['company'];
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];           

    $body = <<<EOD
<br><hr><br>
Company: $company <br>
Name: $name <br>
Email: $email <br>
Phone: $phone <br>

EOD;

    $headers = "From: $email\r\n";
    $headers .= "Content-type: text/html\r\n";
    $success = mail ($emailTo, $emailSubject, $body, $headers);

/* Results rendered */

echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=http://www.cudd.com/PTS-2014/index.html">';

?>

Thank you in advance.

Upvotes: 1

Views: 780

Answers (2)

Daniel
Daniel

Reputation: 1940

HTML form input is set in POST by the element's name attribute, not its id. You should set the name attribute to the same as the id on each of your input elements.

Upvotes: 6

Jeff Lambert
Jeff Lambert

Reputation: 24661

You have no name attribute on any of your inputs

Change:

<input type="company" id="company" required placeholder="Company name">

To:

<input type="company" name="company" id="company" required placeholder="Company name">

Upvotes: 2

Related Questions