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
   535   536   537   538   539   540   541   542   543   544   545