Page 540 - Beginning PHP 5.3
P. 540
Part III: Using PHP in Practice
<body>
<h1>Contact Us</h1>
<?php
require_once( “HTML/QuickForm.php” );
require_once( “HTML/QuickForm/Renderer/Tableless.php” );
define( “OWNER_FIRST_NAME”, “Michael” );
define( “OWNER_LAST_NAME”, “Brown” );
define( “OWNER_EMAIL_ADDRESS”, “michael@example.com” );
$form = new HTML_QuickForm( “form”, “get”, “contact.php”, “”, array
( “style” => “width: 30em;” ), true );
$form->removeAttribute( “name” );
$form->setRequiredNote( “” );
$form->addElement( “text”, “firstName”, “First name” );
$form->addElement( “text”, “lastName”, “Last name” );
$form->addElement( “text”, “emailAddress”, “Email address” );
$form->addElement( “text”, “subject”, “Message subject” );
$form->addElement( “textarea”, “message”, “Message”, array( “rows” => 10,
“cols” => 50 ) );
$form->addElement( “submit”, “sendButton”, “Send Message” );
$form->addRule( “firstName”, “Please enter your first name”, “required” );
$form->addRule( “firstName”, “The First Name field can contain only letters,
digits, spaces, apostrophes, and hyphens”, “regex”, “/^[ \’\-a-zA-Z0-9]+
$/” );
$form->addRule( “lastName”, “Please enter your last name”, “required” );
$form->addRule( “lastName”, “The Last Name field can contain only letters,
digits, spaces, apostrophes, and hyphens”, “regex”, “/^[ \’\-a-zA-Z0-9]+
$/” );
$form->addRule( “emailAddress”, “Please enter an email address”,
“required” );
$form->addRule( “emailAddress”, “Please enter a valid email address”,
“email” );
$form->addRule( “subject”, “Please enter a message subject”, “required” );
$form->addRule( “subject”, “Your subject can contain only letters, digits,
spaces, apostrophes, commas, periods, and hyphens”, “regex”, “/^[ \’\,\.\-a-
zA-Z0-9]+$/” );
$form->addRule( “message”, “Please enter your message”, “required” );
if ( $form->isSubmitted() and $form->validate() ) {
$form->process( “sendMessage” );
} else {
echo “<p>Please fill in all the fields below, then click Send Message to
send us an email.</p>”;
$renderer = new HTML_QuickForm_Renderer_Tableless();
$form->accept( $renderer );
echo $renderer->toHtml();
}
function sendMessage( $values ) {
$recipient = OWNER_FIRST_NAME . “ “ . OWNER_LAST_NAME . “ <”
. OWNER_EMAIL_ADDRESS . “>”;
$headers = “From: “ . $values[“firstName”] . “ “ . $values[“lastName”]
. “ <” . $values[“emailAddress”] . “>”;
if ( mail( $recipient, $values[“subject”], $values[“message”],
$headers ) ) {
502
9/21/09 9:15:40 AM
c16.indd 502 9/21/09 9:15:40 AM
c16.indd 502