PHP/HTML FORM example with all features, for you!

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
sebnewyork
Forum Commoner
Posts: 43
Joined: Wed Mar 17, 2004 10:20 pm

PHP/HTML FORM example with all features, for you!

Post by sebnewyork »

Hi all
I wish I had found this somewhere so now that I have made it, I decided to post it here for everybody.
This is a code for a FORM.
I just made it and it works, plus it features all sorts of Forms elements and functions, and it is all contained in one same html/PHP page.

Features:
-The form validates all required fields (which include input box, text field, drop-down menus, check boxes and radio buttons).
-The form is 100% Sticky (it remembers what values were entered before validation).
-The forms results are emailed to you.
-After successfull validation, the user is sent a Thank You message to his email.
-After successfull validation, the user is sent to a Thank You page that remembers his name.
-At the end of the form there's even links to "privacy Policy" that open a popup window.

Here's the code, I hope someone like me will find it usefull!

Code: Select all

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Client Request form</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body,td,th &#123;
	font-family: Helvetica Neue, Helvetica;
	font-size: 12px;
	color: #333333;
&#125;
body &#123;
	background-color: #FFFFFF;
&#125;
.error &#123;
	font-weight: bold;
	color: #FF0000;
&#125;
a:link &#123;
	color: #660033;
	text-decoration: none;
&#125;
a:hover &#123;
	text-decoration: underline;
	color: #99CC00;
&#125;
-->
</style></head>

<body>

<?php
ob_start(); // this regulates buffer size in such way that all page data gets to the browser at once
ini_set ('display_errors',1); // error handling (display errors)
error_reporting (E_ALL & ~E_NOTICE);


print '<table width="550" border="0" align="center" cellpadding="10" cellspacing="1" bgcolor="#990066">
<tr><td bgcolor="#FFFFFF" align="left" valign="top"><p>CLIENT REQUEST FORM</p>
<span class="error">*</span> indicates required fields<br />';

// *** BEGIN CONDITIONAL: IF SUBMIT BUTTON PRESSED, AND VALIDATION:

if (isset ($_POST&#1111;'submit'])) &#123; //if submit button has been pressed,... 
		
		
		$problem = FALSE; //...and each field validates...

		if (empty ($_POST&#1111;'firstName'])) &#123; //if first name field is empty...
			$problem = TRUE; //...it is a problem
			print '<p class="error">Please enter your First Name</p>'; //so, write warning
		&#125;
		
		if (empty ($_POST&#1111;'lastName'])) &#123;
			$problem = TRUE;
			print '<p class="error">Please enter your Last Name</p>';
		&#125;
		
		if (empty ($_POST&#1111;'address'])) &#123;
			$problem = TRUE;
			print '<p class="error">Please enter your Address</p>';
		&#125;
		
		if (empty ($_POST&#1111;'city'])) &#123;
			$problem = TRUE;
			print '<p class="error">Please enter your City</p>';
		&#125;
		
		if (empty ($_POST&#1111;'state']) OR ($_POST&#1111;'state']) == "Select...") &#123;
			$problem = TRUE;
			print '<p class="error">Please select a State</p>';
		&#125;
		
		if (empty ($_POST&#1111;'zip'])) &#123;
			$problem = TRUE;
			print '<p class="error">Please enter your Zip Code</p>';
		&#125;
		
		if (empty ($_POST&#1111;'areaCode']) OR strlen ($_POST&#1111;'areaCode']) != 3 OR !is_numeric ($_POST&#1111;'areaCode']) OR empty ($_POST&#1111;'phoneNumMid']) OR strlen ($_POST&#1111;'phoneNumMid']) != 3 OR !is_numeric ($_POST&#1111;'phoneNumMid']) OR empty ($_POST&#1111;'phoneNumEnd']) OR strlen ($_POST&#1111;'phoneNumEnd']) != 4 OR !is_numeric ($_POST&#1111;'phoneNumEnd']) ) &#123;
			$problem = TRUE;
			print '<p class="error">Please enter a full/valid Phone Number</p>';
		&#125;

		if (!isset ($_POST&#1111;'Staffing']) AND !isset ($_POST&#1111;'Outsourcing'])) &#123;
			$problem = TRUE;
			print '<p class="error">Please select at least one service you would be interested in</p>';
		&#125;
	
		if (!isset ($_POST&#1111;'agree'])) &#123;
			$problem = TRUE;
			print '<p class="error">You didn''t agree with our Privacy Policy and Terms of Use</p>';
		&#125;		

		if (!$problem) &#123; //if !NO validation problem found after submit, the form passes, emails are sent, and user is sent to thank you page:
		
			//*** email sent to you
		
		$sendto = "yourmail@email.com, anothermail@email.net"; 
		$headers = "From: You<yourmail@email.com>\r\n";
		$headers .= "Reply-To: You <yourmail@email.com>\r\n";
		$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
	
		// setup variables   
		$subject = "$firstName $lastName Sent a Request to YourWebSite!";   
	  
		// append to the message that the user typed in
		$message .= "<br /><br />
		On " . date("F j, Y, g:i a") . " $firstName $lastName ( $email ) Sent a Request from YourWebSite.  Details follow: <br /><br />
		
		Company: $company <br />
		First Name: $firstName <br /> 
		Last Name: $lastName <br />  
		Address: $address <br />
		City: $city <br />
		State: $state <br />
		Zip Code: $zip <br />
		Phone Number: $areaCode $phoneNumMid $phoneNumEnd <br />
		Phone 2: $areaCode2 $phoneNumMid2 $phoneNumEnd2 <br />
		Fax: $areaCodeFax $phoneNumMidFax $phoneNumEndFax <br />
		Email: $email <br />
		Looking for: <br />
		Staffing: $Staffing <br />
		Outsourcing: $Outsourcing <br />
		service which best describes your needs: $service <br />
		Where did you Hear from Us: $whereDidUHear <br />
		Would you like a representative to call you: $call <br />";
			
	
		mail($sendto, $subject, $message, $headers);
		

			// *** thank you message.
			$sendto = $email;
			$subject = "Thank you $firstName $lastName for your interest in YourWebSite";	
			$message = "$firstName $lastName, We received your request and are reviewing it.
			A representative will contact you shortly.
			Thank you from all of us at Your Web Site!";

	mail($sendto, $subject, $message, $headers);
	
			// start session, for passing user name to thank you page:
			session_start();
			$_SESSION&#1111;'firstname'] = $_POST&#1111;'firstName'];
			$_SESSION&#1111;'lastname'] = $_POST&#1111;'lastName'];
			
			// *** go to next page:
			header ('location: afterrequest.php');//all you need to do in the next page is start session like above session_start(); and call the variables 'firstname' 'lastname' to have you user name displayed
			exit();
			
		&#125; else &#123; //if there is a validation problem, then write warning and...
		
			print '<p><span class="error"> - Please try again - </span></p>';
		
	&#125; //...display the form again:
&#125; // *** end of first conditionnal: if submit button has not been pressed, display the form:

// *** HERE IS THE FORM PER SE: 

	print '<form action="requestForm.php" method="post"><p><strong>Contact Information:</strong></p>
	<table width="80%" cellpadding="2" cellspacing="1" bgcolor="#CCFFCC" align="center">
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	Company:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="company" size="20" value="' . $_POST&#1111;'Company'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>First Name:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="firstName" size="20" value="' . $_POST&#1111;'firstName'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>Last Name:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="lastName" size="20" value="' . $_POST&#1111;'lastName'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>Address:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="address" size="20" value="' . $_POST&#1111;'address'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>City:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="city" size="20" value="' . $_POST&#1111;'city'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>State:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<select name="state" size="1">';
       if (isset ($_POST&#1111;'state'])) &#123; 
	   echo '<option selected="selected" value="' . $_POST&#1111;'state'] . '">'; print $_POST&#1111;'state']; print '</option>';
	   &#125;else&#123;
	   print '<option selected="selected" value="Select...">Select...</option>';
	   &#125;
		print '<option value="New York">New York</option>
				<option value="Select..."> ----------- </option>
				<option value="Alabama">Alabama</option>
                  <option value="Alaska">Alaska</option>
                  <option value="Arizona">Arizona</option>
                  <option value="Arkansas">Arkansas</option>
                  <option value="California">California</option>
                  <option value="Colorado">Colorado</option>
                  <option value="Connecticut">Connecticut</option>
                  <option value="Delaware">Delaware</option>
                  <option value="Florida">Florida</option>
                  <option value="Georgia">Georgia</option>
                  <option value="Hawaii">Hawaii</option>
                  <option value="Idaho">Idaho</option>
                  <option value="Illinois">Illinois</option>
                  <option value="Indiana">Indiana</option>
                  <option value="Iowa">Iowa</option>
                  <option value="Kansas">Kansas</option>
                  <option value="Kentucky">Kentucky</option>
                  <option value="Louisiana">Louisiana</option>
                  <option value="Maine">Maine</option>
                  <option value="Maryland">Maryland</option>
                  <option value="Massachusetts">Massachusetts</option>
                  <option value="Michigan">Michigan</option>
                  <option value="Minnesota">Minnesota</option>
                  <option value="Mississippi">Mississippi</option>
                  <option value="Missouri">Missouri</option>
                  <option value="Montana">Montana</option>
                  <option value="Nebraska">Nebraska</option>
                  <option value="Nevada">Nevada</option>
                  <option value="New Hampshire">New Hampshire</option>
                  <option value="New Jersey">New Jersey</option>
                  <option value="New Mexico">New Mexico</option>
                  <option value="New York">New York</option>
                  <option value="North Carolina">North Carolina</option>
                  <option value="North Dakota">North Dakota</option>
                  <option value="Ohio">Ohio</option>
                  <option value="Oklahoma">Oklahoma</option>
                  <option value="Oregon">Oregon</option>
                  <option value="Pennsylvania">Pennsylvania</option>
                  <option value="Rhode Island">Rhode Island</option>
                  <option value="South Carolina">South Carolina</option>
                  <option value="South Dakota">South Dakota</option>
                  <option value="Tennessee">Tennessee</option>
                  <option value="Texas">Texas</option>
                  <option value="Utah">Utah</option>
                  <option value="Vermont">Vermont</option>
                  <option value="Virginia">Virginia</option>
                  <option value="Washington">Washington</option>
                  <option value="West Virginia">West Virginia</option>
                  <option value="Wisconsin">Wisconsin</option>
                  <option value="Wyoming">Wyoming</option>
              </select>
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>Zip / Postal Code:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="zip" size="20" value="' . $_POST&#1111;'zip'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<span class="error">*</span>Phone:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input name="areaCode" type="text" id="areaCode" size="4" maxlength="3" value="' . $_POST&#1111;'areaCode'] . '" />
    <input name="phoneNumMid" type="text" id="phoneNumMid" size="4" maxlength="3" value="' . $_POST&#1111;'phoneNumMid'] . '" />
    <input name="phoneNumEnd" type="text" id="phoneNumEnd" size="5" maxlength="4" value="' . $_POST&#1111;'phoneNumEnd'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	Alternative Phone:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input name="areaCode2" type="text" id="areaCode2" size="4" maxlength="3" value="' . $_POST&#1111;'areaCode2'] . '" />
    <input name="phoneNumMid2" type="text" id="phoneNumMid2" size="4" maxlength="3" value="' . $_POST&#1111;'phoneNumMid2'] . '" />
    <input name="phoneNumEnd2" type="text" id="phoneNumEnd2" size="5" maxlength="4" value="' . $_POST&#1111;'phoneNumEnd2'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	Fax:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input name="areaCodeFax" type="text" id="areaCodeFax" size="4" maxlength="3" value="' . $_POST&#1111;'areaCodeFAx'] . '" />
    <input name="phoneNumMidFax" type="text" id="phoneNumMidFax" size="4" maxlength="3" value="' . $_POST&#1111;'phoneNumMidFAx'] . '" />
    <input name="phoneNumEndFax" type="text" id="phoneNumEndFax" size="5" maxlength="4" value="' . $_POST&#1111;'phoneNumEndFAx'] . '" />
	</td>
	</tr>
	<tr>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	Email:
	</td>
	<td align="left" valign="middle" bgcolor="#FFFFFF">
	<input type="text" name="email" size="30" value="' . $_POST&#1111;'email'] . '" />
	</td>
	</tr>
	</table>

	
	<p><span class="error">*</span><strong>What Services are you interested in?</strong></p>
		<table width="200" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCFFCC">
          <tr>
            <td bgcolor="#FFFFFF">';
			if (isset ($_POST&#1111;'Staffing'])) &#123;
			
			echo '<input name="Staffing" type="checkbox" value="YES" checked="checked" />';
			&#125;else&#123;
			print '<input name="Staffing" type="checkbox" value="YES" />';
			&#125;
            print 'Staffing </td>
          </tr>
          <tr>
            <td bgcolor="#FFFFFF">';
			if (isset ($_POST&#1111;'Outsourcing'])) &#123;
			
			echo '<input name="Outsourcing" type="checkbox" value="YES" checked="checked" />';
			&#125;else&#123;
			print '<input name="Outsourcing" type="checkbox" value="YES" />';
			&#125;
            print 'Outsourcing </td>
          </tr>
        </table>
		
<p><strong>Please choose a service which best describes your needs:</strong></p>
<select name="service" size="1">';
       if (isset ($_POST&#1111;'service'])) &#123; 
	   echo '<option selected="selected" value="' . $_POST&#1111;'service'] . '">'; print $_POST&#1111;'service']; print '</option>';
	   &#125;else&#123;
	   print '<option selected="selected" value="Select...">Select...</option>';
	   &#125;
	  print'<option value="Executive Assistant">Executive Assistant</option>
                  <option value="Administrative Office Assistant">Administrative Office Assistant</option>
                  <option value="Receptionist">Receptionist</option>
                  <option value="Personal Assistant">Personal Assistant</option>
                  <option value="Administrative Assistant">Administrative Assistant</option>
                  <option value="Desktop Publisher">Desktop Publisher</option>
                  <option value="Word processor">Word processor</option>
                  <option value="File/Mailroom Clerk">File/Mailroom Clerk</option>
                  <option value="Data Entry Clerk">Data Entry Clerk</option>
                  <option value="Special Events Coordinator">Special Events Coordinator</option>
                  <option value="Call Center / Help Desk">Call Center / Help Desk</option>
                  <option value="Data Processing">Data Processing</option>
                  <option value="Billing (medical and otherwise)">Billing (medical and otherwise)</option>
                  <option value="Transcription (medical and otherwise)">Transcription (medical and otherwise)</option>
                  <option value="Insurance Claim Processing">Insurance Claim Processing</option>
                  <option value="Back Office Operations">Back Office Operations</option>
                  <option value="Mailing List Compilation">Mailing List Compilation</option>
                  <option value="Web-Mining / Data Capture">Web-Mining / Data Capture</option>
                  <option value="Personalized Mailing">Personalized Mailing</option>
                  <option value="Proof Reading">Proof Reading</option>
                  <option value="Other">Other</option>
              </select>
	
	<p><strong>Where did you hear about New York Green Room?</strong>  
	<select name="whereDidUHear" id="whereDidUHear">';
       if (isset ($_POST&#1111;'whereDidUHear'])) &#123; 
	   echo '<option selected="selected" value="' . $_POST&#1111;'whereDidUHear'] . '">'; print $_POST&#1111;'whereDidUHear']; print '</option>';
	   &#125;else&#123;
	   print '<option selected="selected" value="Select...">Select...</option>';
	   &#125;
	  print'<option value="Word of Mouth">Word of Mouth</option>
            <option value="Print Ad">Print Ad</option>
            <option value="Internet">Internet</option>
            <option value="Mailing">Mailing</option>
            <option value="Other">Other</option>
          </select>
	</p>
	
	<p><span class="error">*</span><strong>Would you like a representative to call you?</strong></p>
	<table width="200" align="center" cellpadding="2" cellspacing="1" bgcolor="#CCFFCC">
          
		  <tr>
			<td bgcolor="#FFFFFF">';
			if ($_POST&#1111;'call'] == "YES") &#123;
				$sel1 = 'checked="checked"';
			&#125;else&#123;
				$sel1 = "";
			&#125;
			echo '<input type="radio" name="call" value="YES"' .$sel1. ' />';
            print 'YES</td>
          </tr>
          
		  <tr>
            <td bgcolor="#FFFFFF">';
			if ($_POST&#1111;'call'] == "NO") &#123;
				$sel2 = 'checked="checked"';
			&#125;else&#123;
				$sel2 = "";
			&#125;
			echo '<input type="radio" name="call" value="NO"' .$sel2. ' />';
            print 'NO</td>
          </tr>';

       print '</table>
	
	<p>Submission of personal information signifies that you have read and
          agreed to be bound by the New York Greenroom <a href="javascript:window.open(''terms.htm'','''',''HEIGHT=450,WIDTH=400,scrollbars=yes,toolbar=no,menubar=no'')">Terms
          of Use</a> Agreement, and that you consent to New York Greenroom''s use of your resume and personal information 
		  in accordance with the New York Greenroom Web Site <a href="javascript:window.open(''privacy.htm'','''',''HEIGHT=450,WIDTH=400,scrollbars=yes,toolbar=no,menubar=no'')">Privacy
          Policy</a>.</p>
        <p>';
		if (isset ($_POST&#1111;'agree'])) &#123;
		echo '<input type="checkbox" name="agree" value="YES" checked="checked" />';
		&#125;else&#123;
		print '<input type="checkbox" name="agree" value="agree" />';
		&#125;
		print '<span class="error">*</span>Yes I agree with the <a href="javascript:window.open(''terms.htm'','''',''HEIGHT=450,WIDTH=400,scrollbars=yes,toolbar=no,menubar=no'')">Terms
          of Use</a> & <a href="javascript:window.open(''privacy.htm'','''',''HEIGHT=450,WIDTH=400,scrollbars=yes,toolbar=no,menubar=no'')">Privacy
          Policy</a></p>
	<p>
	<input type="submit" name="submit" value="Send Your Request" />
	</p>
	</form>';
// *** END OF FORM PER SE

print '</td></tr>
</table>';
ob_end_flush(); //this ends buffer size regulation started on top of page
?>
</body>
</html>
Graffiti7071
Forum Newbie
Posts: 2
Joined: Fri Mar 19, 2004 2:45 pm

Post by Graffiti7071 »

umm.... thanks.. i guesss
jeff177
Forum Newbie
Posts: 2
Joined: Thu Mar 18, 2004 2:20 pm

Post by jeff177 »

nice job i think this will come in handy, but as i was testing out the code it directs me to submit requestForm.php . Any clue why
Illusionist
Forum Regular
Posts: 903
Joined: Mon Jan 12, 2004 9:32 pm

Post by Illusionist »

uhh... maybe because its supposed to.... Thats were it redirects int he form action:

Code: Select all

<form action="requestForm.php" method="post">
Post Reply