I have an HTML form:

```
  <div id="registration">
  <p> SGU is for youth who have completed 6th through 12th grades. Please complete this entire form for EACH CAMPER. (<a href="PDFs/SGU_Registration_Form_2013.pdf">Download Form to Print</a>)<br />
  <br />
  * Denotes required field</p>
  <form action="form-to-email.php" method="post" name="camper_registration" id="camper registration">

  <label>Last Name*: </label>
  <input name="lastname" type="text" id="lastname" required="required"/>
  <br />
  <label>First Name*: </label><input name="firstname" type="text" id="firstname" required="required"/><br />
  <label>Middle Initial: </label><input type="text" name="initial" size=1 maxlength=1 /><br /><br />

  <label>Street Address*: </label><input name="streetaddress" type="text" id="streetaddress" required="required"/><br />
  <label>Address Line 2: </label><input type="text" name="addressline2" /><br />
  <label>City*: </label><input name="city" type="text" id="city" required="required"/><br />
  <label>State/Province/Region*: </label><input name="state" type="text" id="state" required="required"/><br />
  <label>Zipcode*: </label>
  <INPUT NAME="zip" input type="tel" SIZE=5 MAXLENGTH=5
     onKeyPress="return numbersonly(this, event)" required="required"><br /><br />
  <label>Youth's Email*: </label><input type="email" name="email" id="email" required="required"/><br /><br />
  <label>Youth's Cell*: </label>(<input type="tel" name="youth_area" size="3" maxlength="3" onKeyPress="return numbersonly(this, event)" required="required" />) <input type="tel" name="youth_phone" size="7" maxlength="7" onKeyPress="return numbersonly(this, event)" required="required" /><SCRIPT TYPE="text/javascript">
  <!--
  autojump("youth_area", "youth_phone", 3);
  //-->
  </SCRIPT><br /><br />
  <label>Date of Birth*: </label><INPUT NAME="month" input type="tel" SIZE=2 MAXLENGTH=2
     onKeyPress="return numbersonly(this, event)" required="required">/
     <INPUT NAME="day" input type="tel" SIZE=2 MAXLENGTH=2
     onKeyPress="return numbersonly(this, event)" required="required">/
     <INPUT NAME="year" input type="tel" SIZE=4 MAXLENGTH=4
     onKeyPress="return numbersonly(this, event)" required="required">
      <SCRIPT TYPE="text/javascript">
      autojump("month", "day", 2); autojump("day", "year", 2);
      </SCRIPT><br /><br />
  <label>Grade completed in<br /> Spring 2013*: </label><input type="tel" name="grade" size=2 maxlength=2 required="required"/><br /><br />
  <label>Gender*:</label><input type="radio" name="gender" value="Male" required="required"> Male
  <input type="radio" name="gender" value="Female" required="required"> Female
  <br /> <br />
  <label>Parent/Guardian(s) First Name*: </label><input name="guardian_first" type="text" id="guardian_first" required="required"/><br /><br />
  <label>Parent/Guardian(s) Last Name*: </label><input name="guardian_last" type="text" id="guardian_last" required="required"/> <br /><br />
  <label>Parent Phone*: </label>(<INPUT NAME="areacode" input type="tel" SIZE=3 MAXLENGTH=3
     onKeyPress="return numbersonly(this, event)" required="required">)<INPUT NAME="cellphone" input type="tel"SIZE=7 MAXLENGTH=7
     onKeyPress="return numbersonly(this, event)" required="required"><br />
     <SCRIPT TYPE="text/javascript">
  <!--
  autojump("areacode", "cellphone", 3);
  //-->
  </SCRIPT>
  <label>Parent/Guardian Email*: </label><input name="parent_email" type="email" id="parent_email" required="required"/><br />
  <b>This email will be used for confirmation of <br />
  registration and all future contact</b><br /><br />
  <label>1st Emergency Contact*: </label><input name="emergency_contact_1" type="text" id="emergency_contact_1" required="required"/><br />
  <label>Contact Number*: </label>(<INPUT NAME="emergency_contact_1_areacode" input type="tel" SIZE=3 MAXLENGTH=3
     onKeyPress="return numbersonly(this, event)" required="required">)<INPUT NAME="emergency_contact_1_phone" input type="tel"SIZE=7 MAXLENGTH=7
     onKeyPress="return numbersonly(this, event)" required="required"><br /><br />
     <SCRIPT TYPE="text/javascript">
  <!--
  autojump("emergency_contact_1_areacode", "emergency_contact_1_phone", 3);
  //-->
  </SCRIPT>
  <label>2nd Emergency Contact*: </label><input name="emergency_contact_2" type="text" id="emergency_contact_2" required="required"/><br />
  <label>Contact Number*: </label>(<INPUT NAME="emergency_contact_2_areacode" input type="tel" SIZE=3 MAXLENGTH=3
     onKeyPress="return numbersonly(this, event)" required="required">)<INPUT NAME="emergency_contact_2_phone" input type="tel"SIZE=7 MAXLENGTH=7
     onKeyPress="return numbersonly(this, event)" required="required"><br /><br />
        <SCRIPT TYPE="text/javascript">
  <!--
  autojump("emergency_contact_2_areacode", "emergency_contact_2_phone", 3);
  //-->
  </SCRIPT>
  <label>Name of Home Church: </label><input type="text" name="home_church" /><br />
  <label>Phone Number: </label>(<INPUT NAME="church_areacode" input type="tel" SIZE=3 MAXLENGTH=3
     onKeyPress="return numbersonly(this, event)">)<INPUT NAME="church_phone" input type="tel"SIZE=7 MAXLENGTH=7
     onKeyPress="return numbersonly(this, event)"><br />
        <SCRIPT TYPE="text/javascript">
  autojump("church_areacode", "church_phone", 3);
  </SCRIPT>
  <label>Contact Person: </label><input type="text" name="contact_person" /><br /><br /> 
  <b>Special Needs</b><br />
  Some campers may have needs that might require special attention from our staff; accessibility, health concerns, diet, allergies, etc. <br /><br />
  <label>Please list any special needs: </label>
  <textarea rows="10" cols="20" name="special_needs">
  </textarea> <br /><br />
  <label>T-Shirt Size*: </label><input type="radio" name="shirt size" value="Small" required="required"> Small
  <input type="radio" name="shirt size" value="Medium" required="required"> Medium
  <input type="radio" name="shirt size" value="Large" required="required"> Large
  <input type="radio" name="shirt size" value="XL" required="required"> XL
  <input type="radio" name="shirt size" value="2XL" required="required"> 2XL<br /><br />
  <b>Roommate</b><br />
  There are double and many single occupancy dorm rooms at Grinnell college campus - if possible we will honor your request for ONE preferred roommate.<br /><br />
  <label>Roommate Preference: </label>
  <input type="text" name="roommate" /><br /><br />
  <div id="satellites">
        <p><b>Satellite Choices</b>
          List your first, second, and third choices.  You will be given your first choice if it is not full.  ALL events have limited capacity. If you do not choose a satellite, one will be assigned for you.<br /><br />
          <label>First Choice*: </label>
          <select name="satellite1" id="satellite1" required="required" onchange="clearOthers()">
            <option value="" disabled>Select</option>
            <option value="art">Art</option>
            <option value="basketball">Basketball</option>
            <option value="dance">Dance</option>
            <option value="drama">Drama</option>
            <option value="football">Football</option>
            <option value="missions">Missions</option>
            <option value="photo1">Landscape & Still Life Photography</option>
            <option value="photo2">People Photography</option>
            <option value="scrap-booking">Scrap-Booking</option>
            <option value="sgjr">Summer Games Jr. Training</option>
            <option value="soccer">Soccer</option>
            <option value="ultimate">Ultimate Frisbee</option>
            <option value="video_games">Video Games</option>
            <option value="volleyball">Volleyball</option>
            <option value="water_park">Water Park</option>
          </select><br />

          <label>Second Choice*: </label>
          <select name="satellite2" id="satellite2" required="required">
            <option value="" disabled>Select</option>
            <option value="art">Art</option>
            <option value="basketball">Basketball</option>
            <option value="dance">Dance</option>
            <option value="drama">Drama</option>
            <option value="football">Football</option>
            <option value="missions">Missions</option>
            <option value="photo1">Landscape & Still Life Photography</option>
            <option value="photo2">People Photography</option>
            <option value="scrap-booking">Scrap-Booking</option>
            <option value="sgjr">Summer Games Jr. Training</option>
            <option value="soccer">Soccer</option>
            <option value="ultimate">Ultimate Frisbee</option>
            <option value="video_games">Video Games</option>
            <option value="volleyball">Volleyball</option>
            <option value="water_park">Water Park</option>
          </select><br />

          <label>Third Choice*: </label>
          <select name="satellite3" id="satellite3" required="required">
            <option value="" disabled>Select</option>
            <option value="art">Art</option>
            <option value="basketball">Basketball</option>
            <option value="dance">Dance</option>
            <option value="drama">Drama</option>
            <option value="football">Football</option>
            <option value="missions">Missions</option>
            <option value="photo1">Landscape & Still Life Photography</option>
            <option value="photo2">People Photography</option>
            <option value="scrap-booking">Scrap-Booking</option>
            <option value="sgjr">Summer Games Jr. Training</option>
            <option value="soccer">Soccer</option>
            <option value="ultimate">Ultimate Frisbee</option>
            <option value="video_games">Video Games</option>
            <option value="volleyball">Volleyball</option>
            <option value="water_park">Water Park</option>
        </select>
  <script type="text/javascript">
  function clearOthers() {
    document.getElementById("secondchoice").options.selectedIndex=0;
    document.getElementById("thirdchoice").options.selectedIndex=0;
  }
  </script>    
    </div>

```

And then process it with this PHP:

```
     <?php
    if($_SERVER['REQUEST_METHOD'] !== 'POST')
    {
        //This page should not be accessed directly. Need to submit the form.
        echo "error; you need to submit the form!";
        die;
    }

    $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; $initial = $_POST['initial']; $streetaddress = $_POST['streetaddress']; $addressline2 = $_POST['addressline2']; $city = $_POST['city']; $state = $_POST['state']; $zip = $_POST['zip']; $email = $_POST['email']; $month = $_POST['month']; $day = $_POST['day']; $year = $_POST['year']; $grade = $_POST['grade']; $gender = $_POST['gender']; $guardian_first = $_POST['guardian_first']; $guardian_last = $_POST['guardian_last']; $areacode = $_POST['areacode']; $cellphone = $_POST['cellphone']; $contact1 = $_POST['emergency_contact_1']; $contact1areacode = $_POST['emergency_contact_1_areacode']; $contact1phone = $_POST['emergency_contact_1_phone']; $contact2 = $_POST['emergency_contact_2']; $contact2areacode = $_POST['emergency_contact_2_areacode']; $contact2phone = $_POST['emergency_contact_2_phone']; $homechurch = $_POST['home_church']; $churchareacode = $_POST['church_areacode']; $churchphone = $_POST['church_phone']; $contactperson = $_POST['contact_person']; $specialneeds = $_POST['special_needs']; $shirtsize = $_POST['shirt size']; $roommate = $_POST['roommate']; $firstchoice = $_POST['satellite1']; $secondchoice = $_POST['satellite2']; $thirdchoice = $_POST['satellite3']; $youth_area = $_POST['youth_area']; $youth_phone = $_POST['youth_phone']; 

    //Validate first

    /*
    Simple form validation
    check to see if required fields were entered
    */
    if ($_POST['firstname'] == "" || $_POST['lastname'] == "" || $_POST['streetaddress'] == "" || $_POST['city'] == "" || $_POST['state'] == "" || $_POST['zip'] == "" || $_POST['email'] == "" || $_POST['month'] == "" || $_POST['day'] == "" || $_POST['year'] == "" || $_POST['grade'] == "" || $_POST['gender'] == "" || $_POST['guardian_first'] == "" || $_POST['guardian_last'] == "" || $_POST['areacode'] == "" || $_POST['cellphone'] == "" || $_POST['emergency_contact_1'] == ""  || $_POST['emergency_contact_1_areacode'] == ""  || $_POST['emergency_contact_1_phone'] == ""  || $_POST['emergency_contact_2'] == ""  || $_POST['emergency_contact_2_areacode'] == ""  || $_POST['emergency_contact_2_phone'] == ""  || $_POST['shirt size'] == ""  || $_POST['satellite1'] == ""  || $_POST['satellite2'] == ""  || $_POST['satellite3'] == "" || $_POST['youth_area'] == "" || $_POST['youth_phone'] == "" ) {
            echo "Please fill in all required boxes. \n";
            var_dump($_POST);}
      else {

    $email_from = 'chris569x@gmail.com';//<== update the email address
    $email_subject = "New Registration"; 
    $email_body = "You have received a new registration.\n". 
    "Camper: $firstname $initial $lastname \n".
    "Address: $streetaddress \n".
    "$addressline2 \n".
    "$city, $state $zip \n".
    "Email: $email \n".
    "Date of Birth: $month/$day/$year \n".
    "Grade Completed: $grade \n".
    "Gender: $gender \n".
    "Youth Cell Phone: ($youth_area) $youth_phone \n".
    "Guardian: $guardian_first $guardian_last \n".
    "Guardian Cell Phone: ($areacode) $cellphone \n".
    "First Emergency Contact: $contact1  Contact Number: ($contact1areacode) $contact1phone \n".
    "Second Emergency Contact: $contact2  Contact Number: ($contact2areacode) $contact2phone \n".
    "Home Church: $homechurch Contact Number: ($churchareacode) $churchphone Contact Person: $contactperson \n".
    "Special Needs: $specialneeds \n".
    "T-Shirt Size: $shirtsize \n".
    "Roommate Preference: $roommate \n".
    "Satellite Preferences: 1.$firstchoice 2.$secondchoice 3.$thirdchoice \n".
    " \n";
    $to = "elaineknudtson@gmail.com,chris569x@gmail.com";//<== update the email address
    $headers = "From: $email_from \r\n";
    //Send the email!
    mail($to,$email_subject,$email_body,$headers);
    //done. redirect to thank-you page.
    header("Location: thanks2.htm",303);
    echo "<meta http-equiv='refresh' content='0; url=thanks2.htm'>";
    }
    ?> 

```

I included the var\_dump because I keep getting my "Please fill in all required boxes." error. When I look through the dump, there are no strings without a value. I am very confused, where is the disconnect?

var\_dump:

Please fill in all required boxes. array(38) { ["lastname"]=> string(4) "test" ["firstname"]=> string(4) "test" ["initial"]=> string(1) "t" ["streetaddress"]=> string(8) "123 test" ["addressline2"]=> string(4) "test" ["city"]=> string(9) "testville" ["state"]=> string(10) "test state" ["zip"]=> string(5) "12345" ["email"]=> string(13) "test@test.com" ["youth\_area"]=> string(3) "123" ["youth\_phone"]=> string(7) "1234566" ["month"]=> string(2) "21" ["day"]=> string(2) "21" ["year"]=> string(4) "2121" ["grade"]=> string(2) "12" ["gender"]=> string(4) "Male" ["guardian\_first"]=> string(9) "test test" ["guardian\_last"]=> string(9) "test test" ["areacode"]=> string(3) "123" ["cellphone"]=> string(7) "1231231" ["parent\_email"]=> string(13) "test@test.com" ["emergency\_contact\_1"]=> string(9) "test test" ["emergency\_contact\_1\_areacode"]=> string(3) "123" ["emergency\_contact\_1\_phone"]=> string(7) "1231231" ["emergency\_contact\_2"]=> string(10) "test testy" ["emergency\_contact\_2\_areacode"]=> string(3) "123" ["emergency\_contact\_2\_phone"]=> string(7) "1232132" ["home\_church"]=> string(11) "church test" ["church\_areacode"]=> string(3) "321" ["church\_phone"]=> string(7) "6548976" ["contact\_person"]=> string(12) "tester tests" ["special\_needs"]=> string(13) "none. testing" ["shirt\_size"]=> string(2) "XL" ["roommate"]=> string(4) "none" ["satellite1"]=> string(5) "drama" ["satellite2"]=> string(6) "photo1" ["satellite3"]=> string(10) "volleyball" ["submit"]=> string(6) "Submit" }