PHP POST form validation error - php

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. (Download Form to Print)<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" }

you missed an underscore in the if:
if ($_POST['firstname'] == "" ||
the $_POST['shirt size'] should be shirt_size.
^
This happened to you because your approach is not elegant, that huge If is nasty nasty nasty xD.
You should have a look to foreach() learning to loop through arrays. Also have a look to empty() and isset()
in the php documentation, those are your first friends for validating.
How was it made:
Basicly to search your error I copy pasted your if clause, and the var_dumped array, used some regex magic on them so they became valid php arrays:
$arr = array("lastname"=>"test", "firstname"=>"test", "initial"=>"t", "streetaddress"=>"123 test", "addressline2"=>"test", "city"=>"testville", "state"=>"test state", "zip"=>"12345", "email"=>"test#test.com", "youth_area"=>"123", "youth_phone"=>"1234566", "month"=>"21", "day"=>"21", "year"=>"2121", "grade"=>"12", "gender"=>"Male", "guardian_first"=>"test test", "guardian_last"=>"test test", "areacode"=>"123", "cellphone"=>"1231231", "parent_email"=>"test#test.com", "emergency_contact_1"=>"test test", "emergency_contact_1_areacode"=>"123", "emergency_contact_1_phone"=>"1231231", "emergency_contact_2"=>"test testy", "emergency_contact_2_areacode"=>"123", "emergency_contact_2_phone"=>"1232132", "home_church"=>"church test", "church_areacode"=>"321", "church_phone"=>"6548976", "contact_person"=>"tester tests", "special_needs"=>"none. testing", "shirt_size"=>"XL", "roommate"=>"none", "satellite1"=>"drama", "satellite2"=>"photo1", "satellite3"=>"volleyball", "submit"=>"Submit");
$arr2 = array('firstname', 'lastname', 'streetaddress', 'city', 'state', 'zip', 'email', 'month', 'day', 'year', 'grade', 'gender', 'guardian_first', 'guardian_last', 'areacode', 'cellphone', 'emergency_contact_1', 'emergency_contact_1_areacode', 'emergency_contact_1_phone', 'emergency_contact_2', 'emergency_contact_2_areacode', 'emergency_contact_2_phone', 'shirt size', 'satellite1', 'satellite2', 'satellite3', 'youth_area', 'youth_phone');
Next time please use var_export() so you output a valid php array and people can just copypaste it!!
Then i used this loop to find out if they matched:
foreach($arr2 as $k=>$v){
if(!array_key_exists($v, $arr)){
echo "$v not in array 1 <br/>";
}
}
Output: shirt size not in array 1
Enjoy!

<?php
if (isset($_POST['submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
if (empty($firstname == '' || $lastname == '')) {
echo "empty";
}
}
?>
Or somthing like this :
// Required field names
$required = array('login', 'password', 'confirm', 'name', 'phone', 'email');
// Loop over field names, make sure each one exists and is not empty
$error = false;
foreach($required as $field) {
if (empty($_POST[$field])) {
$error = true;
}
}
if ($error) {
echo "All fields are required.";
} else {
echo "Proceed...";
}

Please use
if(empty($_POST['firstname']) && $_POST['firstname'])
instead of :
if($_POST['firstname']=="")
for each of the field.Your array is very big you may have missed any field , the empty() will check whether it has been set or not & next statement will check it is nonzero.
for more about empty()
hope it will help!

Related

Can't get php contact form to work

I have a webpage that has two contact forms and the second one is working fine but I can't seem to get the first one to work. I am fairly new to php. Thanks in advance for the help. Here's the html:
<h3>Message Us</h3>
<form action="?" method="POST" onsubmit="return saveScrollPositions(this);">
<input type="hidden" name="scrollx" id="scrollx" value="0" />
<input type="hidden" name="scrolly" id="scrolly" value="0" />
<div id="msgbox1">
<label for="name2">Name:</label>
<input type="text" id="name2" name="name2" placeholder=" Required" />
<label for="email2">Email:</label>
<input type="text" id="email2" name="email2" placeholder=" Required" />
<label for="phone">Phone:</label>
<input type="text" id="phone" name="phone" placeholder="" />
<label for= "topic">Topic:</label>
<select id="topic" name="topic">
<option value="general">General</option>
<option value="stud">Property Price Enquiry</option>
<option value="sale">Bull Sale Enquiry</option>
</select>
</div><!--- msg box 1 -->
<div id="msgbox2">
<textarea id="message" name="message" rows="7" colums="25" placeholder="Your Message?"></textarea>
<p id="feedback2"><?php echo $feedback2; ?></p>
<input type="submit" value="Send Message" />
</div><!--- msg box 2 -->
</form><!--- end form -->
</div><!--- end message box -->
And here's the php:
<?php
$to2 = '418#hotmail.com'; $subject2 = 'MPG Website Enquiry';
$name2 = $_POST ['name2']; $email2 = $_POST ['email2']; $phone = $_POST ['phone']; $topic = $_POST ['topic']; $message = $_POST ['message'];
$body2 = <<<EMAIL
This is a message from $name2 Topic: $topic
Message: $message
From: $name2 Email: $email2 Phone: $phone
EMAIL;
$header2 = ' From: $email2';
if($_POST['submit']=='Send Message'){
if($name2 == '' || $email2 == '' || $message == ''){
$feedback2 = '*Please fill out all the fields';
}else {
mail($to2, $subject2, $body2, $header2);
$feedback2 = 'Thanks for the message. <br /> We will contact you soon!';
} } ?>
For the saveScrollPositions I use the following php and script:
<?php
$scrollx = 0;
$scrolly = 0;
if(!empty($_REQUEST['scrollx'])) {
$scrollx = $_REQUEST['scrollx'];
}
if(!empty($_REQUEST['scrolly'])) {
$scrolly = $_REQUEST['scrolly'];
}
?>
<script type="text/javascript">
window.scrollTo(<?php echo "$scrollx" ?>, <?php echo "$scrolly" ?>);
</script>
You have a mistake in your HTML part i.e.
<input type="submit" value="Send Message" />
add attribute name also in this input type like this-
<input type="submit" value="Send Message" name="submit" />
one thing more to correct in your php script is write-
$header2 = "From: ".$email2; instead of $header2 = ' From: $email2';
now try it.
What do you return in "saveScrollPositions" function? if you return false the form submit wont fire.

Form Fields Not Being Passed

Can some help me with the form on this page: http://riccipsych.com/referrals.php? The form fields are not being passed to the form handler: http://riccipsych.com/sendmail.php. I'm getting an email from my form with all the form labels but, the fields are blank.
Here's the code for each page:
referrals.php
<p><?php
$ipi = getenv("REMOTE_ADDR");
$httprefi = getenv ("HTTP_REFERER");
$httpagenti = getenv ("HTTP_USER_AGENT");
?>
<input type="hidden" name="ip" value="<?php echo $ipi ?>" />
<input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" /></p>
<form method="post" action="sendmail.php">
<h3>Client Information:</h3>
<label for="attn" class="label">Referral To:</label>
<select id="attn" name="select">
<option value="General">General</option>
<option value="Dr. Tammie Ricci, C.Psych.">Dr. Tammie Ricci, C.Psych.</option>
<option value="Dr. Paul Mendella, C.Psych.">Dr. Paul Mendella, C.Psych.</option>
<option value="Dr. Paul Roy, Psychiatrist">Dr. Paul Roy, Psychiatrist</option>
</select>
<br />
<label for="cname" class="label">Client Name:</label>
<input id="cname" type="text" name="textfield" maxlength="60">
<br />
<label for="caddress" class="label">Client Address:</label>
<input id="caddress" type="text" name="textfield" maxlength="60">
<br />
<label for="ccity" class="label">Client City:</label>
<input id="ccity" type="text" name="textfield" maxlength="50">
<br />
<label for="cprovince" class="label">Client Province:</label>
<select id="cprovince" name="select">
<option value="NFLD">NFLD </option>
<option value="NS">NS </option>
<option value="PEI">PEI </option>
<option value="NB">NB </option>
<option value="PQ">PQ </option>
<option value="ON">ONT </option>
<option value="MAN">MAN </option>
<option value="SASK">SASK </option>
<option value="ALTA">ALTA </option>
<option value="BC">BC </option>
<option value="YT">YT </option>
<option value="NWT">NWT </option>
<option value="NVT">NVT </option>
</select>
<br />
<label for="cpcode" class="label">Client Postal Code:</label>
<input id="cpcode" type="text" name="textfield" maxlength="7">
<br />
<label for="chphone" class="label">Client Home Phone:</label>
<input id="chphone" type="text" name="textfield" maxlength="15">
<br />
<label for="cwphone" class="label">Client Work Phone:</label>
<input id="cwphone" type="text" name="textfield" maxlength="15">
<br />
<label for="ccphone" class="label">Client Cell Phone:</label>
<input id="ccphone" type="text" name="textfield" maxlength="15">
<br />
<label for="cdob" class="label">Client Date of Birth</label>
<input id="cdob" type="text" name="textfield" maxlength="20">
<br />
<label for="chmessage" class="label">Can we leave a message at the client's home?</label>
<select id="chmessage" name="select">
<option value="Yes">Yes </option>
<option value="No">No </option>
</select>
<br />
<label for="cwmessage" class="label">Can we leave a message at the client's workplace?</label>
<select id="cwmessage" name="select">
<option value="Yes">Yes </option>
<option value="No">No </option>
</select>
<br />
<br />
<h3>Referral Information</h3>
<label for="rname" class="label">Referral Name:</label>
<input id="rname" type="text" name="textfield" maxlength="60">
<br />
<label for="raddress" class="label">Referral Address:</label>
<input id="raddress" type="text" name="textfield" maxlength="60">
<br />
<label for="rcity" class="label">Referral City:</label>
<input id="rcity" type="text" name="textfield" maxlength="50">
<br />
<label for="rprovince" class="label">Referral Province:</label>
<select id="rprovince" name="select">
<option value="NFLD">NFLD </option>
<option value="NS">NS </option>
<option value="PEI">PEI </option>
<option value="NB">NB </option>
<option value="PQ">PQ </option>
<option value="ON">ONT </option>
<option value="MAN">MAN </option>
<option value="SASK">SASK </option>
<option value="ALTA">ALTA </option>
<option value="BC">BC </option>
<option value="YT">YT </option>
<option value="NWT">NWT </option>
<option value="NVT">NVT </option>
</select>
<br />
<label for="rpcode" class="label">Referral Postal Code:</label>
<input id="rpcode" type="text" name="textfield" maxlength="7">
<br />
<label for="rwphone" class="label">Referral Work Phone:</label>
<input id="rwphone" type="text" name="textfield" maxlength="15">
<br />
<label for="remail" class="label">Referral E-Mail:</label>
<input id="remail" type="text" name="textfield" maxlength="80">
<br />
<label for="notes" class="label">Notes:</label>
<textarea id="notes" style="width: 300px; height: 150px;" name="textarea"></textarea>
<br />
<br />
<p><input type="submit" value="Send Form" /></p>
sendmail.php
<?php
if(!$remail == "" && (!strstr($remail,"#") || !strstr($remail,".")))
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n";
$badinput = "<h2>Feedback was NOT submitted</h2>\n";
echo $badinput;
}
if(empty($rname) || empty($remail) || empty($cname )) {
echo "<h2>Use Back - fill in all fields</h2>\n";
}
$todayis = date("l, F j, Y, g:i a") ;
$attn = $attn ;
$subject = $attn;
$notes = stripcslashes($notes);
$message = " $todayis [EST] \n
Referral To: $attn \n
Client Name: $cname \n
Client Address: $caddress \n
Client City: $ccity \n
Client Province: $cprovince \n
Client Postal Code: $cpcode \n
Client Home Phone: $chphone \n
Client Work Phone: $cwphone \n
Client Cell Phone: $ccphone \n
Client Date of Birth: $cdob \n
Leave Message at Client's Home: $chmessage \n
Leave Message at Client's Workplace: $chmessage \n
Referral Name: $rname \n
Referral Address: $raddress \n
Referral City: $rcity \n
Referral Province: $rprovince \n
Referral Postal Code: $rpcode \n
Referral Work Phone: $rwphone \n
Referral Email: $remail \n
Notes: $notes \n
From: $rname ($remail)\n
Additional Info : IP = $ip \n
Browser Info: $httpagent \n
Referral : $httpref \n
";
$from = "From: $remail\r\n";
mail("info#riccipsych.com", $subject, $message, $from);
?>
<h1>Thank You</h1>
<p>Thank you for submitting your referral. We will contact you shortly.</p>
It is still not working. I changed sendmail.php to sendeail.php and added:
<?php
$ip = $_POST['ip'];
$httpref = $_POST['httpref'];
$httpagent = $_POST['httpagent'];
$attn = $_POST['attn'];
$cname = $_POST['cname'];
$caddress = $_POST['caddress'];
$ccity = $_POST['ccity'];
$cprovince = $_POST['cprovince'];
$cpcode = $_POST['cpcode'];
$chphone = $_POST['chphone'];
$cwphone = $_POST['cwphone'];
$ccphone = $_POST['ccphone'];
$cdob = $_POST['cdob'];
$chmessage = $_POST['chmessage'];
$cwmessage = $_POST['cwmessage'];
$rname = $_POST['rname'];
$raddress = $_POST['raddress'];
$rcity = $_POST['rcity'];
$rprovince = $_POST['rprovince'];
$rpcode = $_POST['rpcode'];
$rwphone = $_POST['rwphone'];
$remail = $_POST['remail'];
$notes = $_POST['notes'];
if(!$remail == "" && (!strstr($remail,"#") || !strstr($remail,".")))
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n";
$badinput = "<h2>Feedback was NOT submitted</h2>\n";
echo $badinput;
}
if(empty($rname) || empty($remail) || empty($cname )) {
echo "<h2>Use Back - fill in all fields</h2>\n";
}
$todayis = date("l, F j, Y, g:i a") ;
$attn = $attn ;
$subject = $attn;
$notes = stripcslashes($notes);
$message = " $todayis [EST] \n
Referral To: $attn \n
Client Name: $cname \n
Client Address: $caddress \n
Client City: $ccity \n
Client Province: $cprovince \n
Client Postal Code: $cpcode \n
Client Home Phone: $chphone \n
Client Work Phone: $cwphone \n
Client Cell Phone: $ccphone \n
Client Date of Birth: $cdob \n
Leave Message at Client's Home: $chmessage \n
Leave Message at Client's Workplace: $chmessage \n
Referral Name: $rname \n
Referral Address: $raddress \n
Referral City: $rcity \n
Referral Province: $rprovince \n
Referral Postal Code: $rpcode \n
Referral Work Phone: $rwphone \n
Referral Email: $remail \n
Notes: $notes \n
From: $rname ($remail)\n
Additional Info : IP = $ip \n
Browser Info: $httpagent \n
Referral : $httpref \n
";
$from = "From: $remail\r\n";
mail("info#riccipsych.com", $subject, $message, $from);
?>
<h1>Thank You</h1>
<p>Thank you for submitting your referral. We will contact you shortly.</p>
You need to define your variables in sendmail.php with $_POST or $_REQUEST:
$remail = $_REQUEST['remail'];
To see what variables you have, you can also use the following code on sendmail.php
foreach($_REQUEST as $k => $v)
echo "$k = $v\n";

PHP form sendeail.php not identifying new form items

I am trying to add new items to a legacy sendeail.php form. However, when I add the new items to the php listing and the mail delivery, they aren't displaying at all in the email that is sent. At least the emails are going through... I know that I need to refine the radio and check box items, but NONE of the new items are showing. New items are all items after $attn in the code list immediately below. Any and all help is appreciated, thank you very much!
My PHP code is:
<?php
$ip = $_POST['ip'];
$httpref = $_POST['httpref'];
$httpagent = $_POST['httpagent'];
$visitor = $_POST['visitor'];
$visitormail = $_POST['visitormail'];
$notes = $_POST['notes'];
$attn = $_POST['attn'];
$phone = $_POST['phone'];
$interest = $_POST['interest'];
$budget = $_POST['budget'];
$budget = $_POST['day'];
$timeslot = $_POST['timeslot'];
if (eregi('http:', $notes)) {
die ("Do NOT try that! ! ");
}
if(!$visitormail == "" && (!strstr($visitormail,"#") || !strstr($visitormail,".")))
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n";
$badinput = "<h2>Please complete all the fields.</h2>\n";
echo $badinput;
die ("Use the Back button on your browser...");
}
if(empty($visitor) || empty($visitormail) || empty($notes ) || empty($attn ) || empty($phone )) {
echo "<h2>Please click Back and fill in all fields.</h2>\n";
die ("Use the Back button on your browser... ");
}
$todayis = date("l, F j, Y, g:i a") ;
$attn = $attn ;
$subject = $attn;
$notes = stripcslashes($notes);
$message = " $todayis [EST] \n
Web Site Request About: $attn \n
From: $visitor ($visitormail)\n
Phone: $phone \n
Message: $notes \n
Interested In: $interest \n
Heating Budget: $budget \n
Time Availability: Days - $day \n
Time Availability: Morning or Afternoon - $timeslot \n
Additional Info : IP = $ip \n
Browser Info: $httpagent \n
Referral : $httpref \n
";
$from = "From: $visitormail\r\n";
mail("XXXXX", $subject, $message, $from);
?>
And my HTML code is:
<?php
$ipi = getenv("REMOTE_ADDR");
$httprefi = getenv ("HTTP_REFERER");
$httpagenti = getenv ("HTTP_USER_AGENT");
?>
<input type="hidden" name="ip" value="<?php echo $ipi ?>" />
<input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />
All fields are required.</p>
<p align="left">Your Name:
<input type="text" name="visitor" size="35" />
</p>
<p align="left">
Your Email:
<input type="text" name="visitormail" size="35" />
</p>
<p align="left">
<label for="Phone">Your Phone: </label>
<input type="text" name="Phone" id="Phone" size="35"/>
</span></p>
<p align="left">
About:
<select name="attn" size="1">
select name="interest" id="interest">
<option value="General Query">General question</option>
<option value="Plumbing Query">Plumbing</option>
<option value="Gasfitting Query">Gasfitting</option>
<option value="Central Heating Query">Central Heating</option>
<option value="Custom Work Query">Several options</option>
</select>
<br />
<p align="left">Your Home Heating Budget:
<select name="attn2" size="1">
select name="budget" id="budget">
<option value="Under 10000">$8000 to $10,0000</option>
<option value="10 to 12 Thousand">$10,000 to $12,000</option>
<option value="12 to 15 Thousand">$12,000 to $15,000</option>
<option value="+15000 Plus">$15,000 +</option>
</select>
<br />
<p align="left">Are you considering other forms of heating?
<input type="checkbox" name="Yes-OtherFormsHeating" id="Yes-OtherFormsHeating" />
<label for="Yes">Yes</label>
<input type="checkbox" name="No-OtherFormsHeating" id="No-OtherFormsHeating" />
<label for="No">No</label>
<br />
</p>
<p align="left">Please give us a few details about your home and requirements: <br />
<textarea name="notes" rows="6" cols="70"></textarea>
</p>
<p align="left">To give you a quote for gas central heating, we need to visit your home. What is a good day and time for us to come to you? Choose one option.</p>
<p align="left">
<input type="radio" name="day" id="day_M" value="M" />
<label for="M">M</label>
<input type="radio" name="day" id="day_T" value="T" />
<label for="T">T</label>
<input type="radio" name="day" id="day-W" value="W" />
<label for="W">W</label>
<input type="radio" name="day" id="day_Th" value="Th" />
<label for="Th">Th</label>
<input type="radio" name="day" id="day_F" value="F" />
<label for="F">F</label>
</p>
<p align="left">When is a good time on this day for us to come to you? Choose one or both.</p>
<p align="left">
<input type="checkbox" name="timeslot" id="8:30-12:30AM" />
<label for="8:30-12:30AM">8:30 - 12:30</label>
<input type="checkbox" name="timeslot" id="12:30-4" />
<label for="12:30-4">12:30 - 4:00</label>
</p>
First of all: always validate input (POST). You've got some basic validation already but read up on the security implications regarding POST data.
Array keys in php are case sensitive. $_POST['phone'] is not the same as $_POST['Phone'].
Your select tags are broken, take a look at the colouring in your posted html.
You have declared $budget twice, overwriting the intended data:
$budget = $_POST['budget'];
$budget = $_POST['day'];
checkboxes should be arrays when posted, change the name attribute to thename[] instead of just thename. Of course your php script must handle the resulting array after this change.

PHP form handling, checkbox array issue

I have a simple PHP script that handles an HTML form, and everything dumps to email correctly except for a multiple checkbox input. Instead of displaying the checkboxes a user selected, it displays Array.
<?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']; $gender = $_POST['gender']; $areacode = $_POST['areacode']; $cellphone = $_POST['cellphone']; $shirtsize = $_POST['shirt_size']; $country = $_POST['country']; $dayarea = $_POST['daytime_phone_area']; $dayphone = $_POST['daytime_phone']; $shirtsizeother = $_POST['other']; $dates = $_POST['dates']; $signature = $_POST['signature']; $signday = $_POST['signature_day']; $signmonth = $_POST['signature_month']; $signyear = $_POST['signature_year']; $position = $_POST['position']; $contactmethod = $_POST['contactmethod']; $other_size = 'n/a'; $_POST['other_size'] = 'n/a';
//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['gender'] == "" || $_POST['areacode'] == "" || $_POST['cellphone'] == "" || $_POST['daytime_phone_area'] == "" || $_POST['daytime_phone'] == "" || $_POST['dates'] == "" || $_POST['signature'] == "" || $_POST['signature_day'] == "" || $_POST['signature_month'] == "" || $_POST['shirt_size'] == "" || $_POST['signature_year'] == "" || $_POST['position'] == "" || $_POST['contactmethod'] == "" ) {
var_dump($_POST);
echo "Please fill in all required boxes.";
}
else {
$email_from = 'chris569x#gmail.com';//<== update the email address $email_subject = "New Volunteer Registration"; $email_body = "You have received a new volunteer registration.\n".
"Volunteer: $firstname $initial $lastname \n".
"Address: $streetaddress \n".
"$addressline2 \n".
"$city, $state $zip \n".
"Email: $email \n".
"Date of Birth: $month/$day/$year \n".
"Gender: $gender \n".
"Cell Phone: ($areacode) $cellphone \n".
"Daytime Phone: ($dayarea) $dayphone \n".
"T-Shirt Size: $shirtsize $shirtsizeother \n".
"Volunteer Position: $position \n".
"Dates availible to volunteer: $dates \n".
"Electronic Signature: $signature $signmonth/$signday/$signyear \n".
"Preferred contact method: $contactmethod \n"; $to = "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');
echo "<meta http-equiv='refresh' content='0; url=thanks2.htm'>";
}
?>
and the email output (problem is with dates availible to volunteer):
You have received a new volunteer registration.
Volunteer: xxxxxx
Address: xxxx
xxxxxx
Email: xxxx
Date of Birth: xxxx
Gender: xxxx
Cell Phone: xxxx
Daytime Phone: xxxx
T-Shirt Size: xxxx
Dates available to volunteer: Array
Electronic Signature: xxxx
Preferred contact method: xxxx
And here is the HTML form if you need to see it:
<form name="volunteer" action="form-to-email3.php" method="post">
<label>Last Name*: </label><input type="text" name="lastname" /><br /> <label>First Name*: </label><input type="text" name="firstname" /><br /> <label>Middle Initial: </label><input type="text" name="initial" size=1 maxlength=1 /><br /><br /> <label>Date of Birth*: </label><INPUT NAME="month" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)"/>/<INPUT NAME="day" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)"/>/<INPUT NAME="year" input type="tel" SIZE=4 MAXLENGTH=4
onKeyPress="return numbersonly(this, event)"/>
<SCRIPT TYPE="text/javascript">
<!--
autojump("month", "day", 2); autojump("day", "year", 2); //--> </SCRIPT><br /><br /> <label>Gender*:</label><input type="radio" name="gender" value="Male"> Male <input type="radio" name="gender" value="Female"> Female </input> <br /> <br /> <label>Street Address*: </label><input type="text" name="streetaddress" /><br /> <label>Address Line 2: </label><input type="text" name="addressline2" /><br />
<label>City*: </label><input type="text" name="city" /><br />
<label>State/Province/Region*: </label><input type="text" name="state" /><br />
<label>Zipcode*: </label>
<INPUT NAME="zip" input type="tel" SIZE=5 MAXLENGTH=5
onKeyPress="return numbersonly(this, event)"/><br />
<label>Country: </label>
<select class="element select medium" id="element_3_6" name="country">
</select> <br /><br />
<label>Email*: </label><input type="email" name="email" /><br /><br />
<label>Cell Phone*: </label>(<INPUT NAME="areacode" input type="tel" SIZE=3 MAXLENGTH=3
onKeyPress="return numbersonly(this, event)"/>)<INPUT NAME="cellphone" input type="tel"SIZE=7 MAXLENGTH=7
onKeyPress="return numbersonly(this, event)"/><br />
<SCRIPT TYPE="text/javascript">
<!--
autojump("areacode", "cellphone", 3);
//-->
</SCRIPT>
<label>Daytime Phone*: </label>(<INPUT NAME="daytime_phone_area" input type="tel" SIZE=3 MAXLENGTH=3
onKeyPress="return numbersonly(this, event)"/>)<INPUT NAME="daytime_phone" input type="tel"SIZE=7 MAXLENGTH=7
onKeyPress="return numbersonly(this, event)"/><br /><br />
<SCRIPT TYPE="text/javascript">
<!--
autojump("daytime_phone_area", "daytime_phone", 3); //--> </SCRIPT>
<label>T-Shirt Size*: </label><input type="radio" name="shirt_size" value="Small"> S <input type="radio" name="shirt_size" value="Medium"> M <input type="radio" name="shirt_size" value="Large"> L <input type="radio" name="shirt_size" value="XL"> XL <input type="radio" name="shirt_size" value="2XL"> 2XL <input type="radio" name="shirt_size" value="Other"> Other (Please provide)<br /> </input>
<label>Other: </label><input type="text" name="other size" /><br /><br /> <label>In which area will you be helping*: </label> <select name="position"> <option name="position" value= "Pastor">Pastor</option> <option name="position" value="Nursing Staff">Nursing Staff</option> <option name="position" value="Camp Staff">Camp Staff (Including Huddle Leaders)</option> <option name="position" value="Other Staff">Other Staff</option> </select><br /><br /> <label>Dates Attending*: <br />(Please check all dates you can be present)</label> <input type="checkbox" name="dates[]" value="7/6">Jul. 6 <input type="checkbox" name="dates[]" value="7/7">Jul. 7 <input type="checkbox" name="dates[]" value="7/8">Jul. 8 <input type="checkbox" name="dates[]" value="7/9">Jul. 9 <input type="checkbox" name="dates[]" value="7/10">Jul. 10 <input type="checkbox" name="dates[]" value="7/11">Jul. 11 <input type="checkbox" name="dates[]" value="7/12">Jul. 12<br /><br /><br /><br /></input> <label>What is the best way to contact you*? </label><input type="text" name="contactmethod" /><br /><br /><br />
<b>Electronic Submission</b>
<p>I understand that by filling in my name here, it shall act as a binding, legal signagure. </p> <label>Electronic Signagure*: </label><input type="text" name="signature" /><br />
<label>Date*: </label><INPUT NAME="signature_month" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)"/>/<INPUT NAME="signature_day" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)"/>/<INPUT NAME="signature_year" input type="tel" SIZE=4 MAXLENGTH=4
onKeyPress="return numbersonly(this, event)"/>
<SCRIPT TYPE="text/javascript">
<!--
autojump("signature_month", "signature_day", 2); autojump("signature_day", "signature_year", 2); //--> </SCRIPT><br /><br /><br /><br /><br />
<input type="submit" value="Submit" />
</form>
Try using PHP's implode() function and changing
$dates = $_POST['dates'];
to
$dates = implode(", ",$_POST['dates']);
This will convert the array into a string where each date is separated by a comma.
When you used the name dates[] in your HTML forms, you specified that the data should be in an array format. The [] syntax tells the form to create a new element in the array of your POST data.
To step through the values of your array, you'd use foreach:
foreach($dates as $v) {
echo $v . "<br />";
}

php form validation issue, "fill in all required boxes"

I have created a simple HTML form, and process it using PHP.
When I try to submit the form, it is giving me the error message I created for not filling in all the required boxes. I have checked and rechecked the variables, and I cannot figure out why it is giving me that message with all the fields filled in.
HTML:
<form name="volunteer" action="form-to-email3.php" method="post">
<label>Last Name*: </label><input type="text" name="lastname" /><br />
<label>First Name*: </label><input type="text" name="firstname" /><br />
<label>Middle Initial: </label><input type="text" name="initial" size=1 maxlength=1 /><br /><br />
<label>Date of Birth*: </label><INPUT NAME="month" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)">/<INPUT NAME="day" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)">/<INPUT NAME="year" input type="tel" SIZE=4 MAXLENGTH=4
onKeyPress="return numbersonly(this, event)">
<SCRIPT TYPE="text/javascript">
<!--
autojump("month", "day", 2); autojump("day", "year", 2);
//-->
</SCRIPT><br /><br />
<label>Gender*:</label><input type="radio" name="gender" value="Male"> Male
<input type="radio" name="gender" value="Female"> Female
<br /> <br />
<label>Street Address*: </label><input type="text" name="streetaddress" /><br />
<label>Address Line 2: </label><input type="text" name="addressline2" /><br />
<label>City*: </label><input type="text" name="city" /><br />
<label>State/Province/Region*: </label><input type="text" name="state" /><br />
<label>Zipcode*: </label>
<INPUT NAME="zip" input type="tel" SIZE=5 MAXLENGTH=5
onKeyPress="return numbersonly(this, event)"><br />
<label>Country: </label>
<select class="element select medium" id="element_3_6" name="country">
<option value="" selected="selected"></option>
<option value="Afghanistan" >Afghanistan</option>
<option value="Albania" >Albania</option>
</select>
<br /><br />
<label>Email*: </label><input type="email" name="email" /><br /><br />
<label>Cell Phone*: </label>(<INPUT NAME="areacode" input type="tel" SIZE=3 MAXLENGTH=3
onKeyPress="return numbersonly(this, event)">)<INPUT NAME="cellphone" input type="tel"SIZE=7 MAXLENGTH=7
onKeyPress="return numbersonly(this, event)"><br />
<SCRIPT TYPE="text/javascript">
<!--
autojump("areacode", "cellphone", 3);
//-->
</SCRIPT>
<label>Daytime Phone*: </label>(<INPUT NAME="daytime_phone_area" input type="tel" SIZE=3 MAXLENGTH=3
onKeyPress="return numbersonly(this, event)">)<INPUT NAME="daytime_phone" input type="tel"SIZE=7 MAXLENGTH=7
onKeyPress="return numbersonly(this, event)"><br /><br />
<SCRIPT TYPE="text/javascript">
<!--
autojump("daytime_phone_area", "daytime_phone", 3);
//-->
</SCRIPT>
<label>T-Shirt Size*: </label><input type="radio" name="shirt_size" value="Small"> Small
<input type="radio" name="shirt_size" value="Medium"> Medium
<input type="radio" name="shirt_size" value="Large"> Large
<input type="radio" name="shirt_size" value="XL"> XL
<input type="radio" name="shirt_size" value="2XL"> 2XL
<input type="radio" name="shirt_size" value="Other"> Other (Please provide)<br />
<label>Other:</label><input type="text" name="other size" /><br /><br />
<p>In which area will you be helping*:</p>
<select>
<option name= "position" value= "Pastor">Pastor</option>
<option name= "position" value="Nursing Staff">Nursing Staff</option>
<option name= "position" value="Camp Staff">Camp Staff (Including Huddle Leaders)</option>
<option name= "position" value="Other Staff">Other Staff</option>
</select><br /><br />
<label>Dates Attending*: <br />(Please check all dates you can be present)</label>
<input type="checkbox" name="dates" value="7/6">July 6
<input type="checkbox" name="dates" value="7/7" />July 7
<input type="checkbox" name="dates" value="7/8">July 8
<input type="checkbox" name="dates" value="7/9">July 9
<input type="checkbox" name="dates" value="7/10">July 10
<input type="checkbox" name="dates" value="7/11">July 11
<input type="checkbox" name="dates" value="7/12">July 12<br /><br /><br /><br />
<label>What is the best way to contact you*? </label><input type="text" name="contactmethod" /><br /><br /><br />
<b>Electronic Submission</b>
<p>I understand that by filling in my name here, it shall act as a binding, legal signagure. </p>
<label>Electronic Signagure*: </label><input type="text" name="signature" /><br />
<label>Date*: </label><INPUT NAME="signature_month" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)">/<INPUT NAME="signature_day" input type="tel" SIZE=2 MAXLENGTH=2
onKeyPress="return numbersonly(this, event)">/<INPUT NAME="signature_year" input type="tel" SIZE=4 MAXLENGTH=4
onKeyPress="return numbersonly(this, event)">
<SCRIPT TYPE="text/javascript">
<!--
autojump("signature_month", "signature_day", 2); autojump("signature_day", "signature_year", 2);
//-->
</SCRIPT><br /><br /><br /><br /><br />
<input type="submit" value="Submit">
</form>
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']; $gender = $_POST['gender']; $areacode = $_POST['areacode']; $cellphone = $_POST['cellphone']; $shirtsize = $_POST['shirt_size']; $country = $_POST['country']; $dayarea = $_POST['daytime_phone_area']; $dayphone = $_POST['daytime_phone']; $shirtsizeother = $_POST['other']; $dates = $_POST['dates']; $signature = $_POST['signature']; $signday = $_POST['signature_day']; $signmonth = $_POST['signature_month']; $signyear = $_POST['signature_year']; $position = $_POST['position']; $contactmethod = $_POST['contactmethod'];
//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['gender'] == "" || $_POST['areacode'] == "" || $_POST['cellphone'] == "" || $_POST['daytime_phone_area'] == "" || $_POST['daytime_phone'] == "" || $_POST['dates'] == "" || $_POST['signature'] == "" || $_POST['signature_day'] == "" || $_POST['signature_month'] == "" || $_POST['shirt_size'] == "" || $_POST['signature_year'] == "" || $_POST['position'] == "" || $_POST['contactmethod'] == "" ) {
echo "Please fill in all required boxes.";}
else {
$email_from = 'chris569x#gmail.com';//<== update the email address
$email_subject = "New Volunteer Registration"; $email_body = "You have received a new volunteer registration.\n".
"Volunteer: $firstname $initial $lastname \n".
"Address: $streetaddress \n".
"$addressline2 \n".
"$city, $state $zip \n".
"Email: $email \n".
"Date of Birth: $month/$day/$year \n".
"Gender: $gender \n".
"Cell Phone: ($areacode) $cellphone \n".
"Daytime Phone: ($dayarea) $dayphone \n".
"T-Shirt Size: $shirtsize $shirtsizeother \n".
"Dates availible to volunteer: $dates \n".
"Electronic Signature: $signature $signmonth/$signday/$signyear \n".
"Preferred contact method: $contactmethod \n";
$to = "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');
echo "<meta http-equiv='refresh' content='0; url=thanks2.htm'>";
}
?>
I believe that you need to change your select for position.
It appears that the name is not coming over to the post page because you put the name in instead of the . Fix that and you should be good to go.
Congratulations, your server seems to be properly configured! The variables $city should not hold any data. You have to use $_POST['city'] or $_REQUEST['city'] instead.
Some hosts may still support submitting variables directly to the $variables, but this is not a safe configuration.
For instance:
...
if (password_check($username,$password)) {
$access = 'yes'
}
...
if ('yes'==$access) { ... }
Could be hacked by submitting script.php&access=yes
So you have to use $_POST['variable'] directly or copy it in the $variable, first.

Categories