views:

51

answers:

2

I feel like I must be missing something simple here... Nothing sends, nor do I receive the success message.

    <?php
if(isset($_POST['submit'])) {
$to = "[email protected]";
$subject = "Feedback Form";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];

$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";

mail($to, $subject, $body);

$emailSent = true;
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Feedback Form</title>

    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
  <div id="wrapper">

    <h1>Feedback Form</h1>

    <?php if($emailSent == true) { //If email is sent ?>
    <p><strong>Feedback Successfully Sent!</strong></p>
    <?php } else  {?>
    <h3>Please submit your feedback</h3>
    <?php } ?>  

    <form id="contactForm" action="index.php" method="post">

        <label for="name">Name:</label>
        <input type="text" name="name" id="name" class="required" minlength="2"/>
        <br/>
        <label for="email">Email:</label>
        <input type="text" name="email" id="email" class="required email"/>
        <br/>
        <label for="occupation">Occupation:</label>
        <select name="occupation" id="occupation" class="required">
            <option value="librarian">Librarian</option>
            <option value="student">Student</option>
            <option value="other">Other</option>
        </select>
        <br/>
        <label for="message">Message:</label>
        <textarea id="message" class="required" minlength="5"></textarea>
        <br/>
        <input class="submit" type="submit" value="Send" />


    </form>


  </div><!--end wrapper-->  

    <script type="text/javascript" src="http://www.google.com/jsapi"&gt;&lt;/script&gt;
    <script type="text/javascript">
        google.load("jquery", "1.4.2");
    </script>
    <script type="text/javascript" src="/js/jquery.validate.pack.js"></script>
    <script type="text/javascript" src="scripts.js"></script>
</body>
</html>
+1  A: 
<input class="submit" type="submit" value="Send" />

Add name="submit" to this for $_POST['submit'] to be set.

edit: $_POST['message'] may also not exist since it's name attribute is not set aswell.

Ryan
A: 

Try with if (isset($_POST['name'])) in the first line. $_POST['submit'] is not set.

illarra
Or add a name attribute to the input button, as Ryan suggests. The point is that now it doesn't work, because you don't have a `$_POST['submit]`. If you want to know what parameters have been sent, try with `var_dump($_POST)`.
illarra