Home arrow PHP arrow Page 4 - Building a PHP 5 Form Processor: Using the Form Processor Package

Gluing the pieces: putting the form processing modules to work together - PHP

Welcome to the last part of the series “Building a PHP 5 form processor.” In three parts, this series goes through the development of an extensible form processor package in PHP 5, explaining its benefits and demonstrating its implementation.

TABLE OF CONTENTS:
  1. Building a PHP 5 Form Processor: Using the Form Processor Package
  2. Getting started: constructing programmatically an online form
  3. Performing server-side validation: implementing the “validator” module
  4. Gluing the pieces: putting the form processing modules to work together
  5. The complete application at a glance: listing the complete code of the form processor
By: Alejandro Gervasio
Rating: starstarstarstarstar / 22
January 30, 2006

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement

Since you’ve already seen how each independent module works, next I’ll integrate them within the same PHP script. The end result of this will be a code fragment that displays the online form; after it’s been submitted, server validation is applied to each mandatory field. Take a closer look:

// if form was submitted perform server-side validation
if($_POST['send']){
    // instantiate form validator object
    $fv=new formValidator();
    $fv->validateEmpty('fname','Enter your first name (Min: 4
characters)');
    $fv->validateEmpty('lname','Enter your last name (Min: 4
characters)');
    $fv->validateEmail('email','Enter a valid email address');
    // check for errors
    if($fv->checkErrors()){
        // display errors
        echo '<h2>Resubmit the form after correcting the
following errors:</h2>';
        echo $fv->displayErrors();
    }
    else {
        echo '<h2>Thank you for submitting your data!</h2>';
    }
}
// create and display form
else {
    try{
        // instantiate form generator object
        $fg=new formGenerator();
        $fg->addFormPart('<table>');
        $fg->addFormPart('<tr><td>First Name</td><td>');
        $fg->addElement('text',array
('name'=>'fname','required'=>array('empty','Enter your First name
(at least 4 characters)')));
        $fg->addFormPart('</tr>');
        $fg->addFormPart('<tr><td>Last Name</td><td>');
        $fg->addElement('text',array
('name'=>'lname','required'=>array('empty','Enter your Last name
(at least 4 characters)')));
        $fg->addFormPart('</tr>');
        $fg->addFormPart('<tr><td>Email</td><td>');
        $fg->addElement('text',array
('name'=>'email','required'=>array('email','Enter a valid email
address')));
        $fg->addFormPart('</tr>');
        $fg->addFormPart('<tr><td>Comments</td><td>');
        $fg->addElement('textarea',array
('name'=>'comments','rows'=>'10','cols'=>'20'));
        $fg->addFormPart('</tr>');
        $fg->addFormPart('<tr><td>&nbsp;</td><td>');
        $fg->addElement('submit',array
('name'=>'send','value'=>'Send Data'));
        $fg->addFormPart('</tr></table>');
        echo $fg->display();
    }
    catch(Exception $e){
        echo $e->getMessage();
        exit();
    }
}

Here, notice how I use the “formValidator” class to check the validity of the data entered into required fields, after the form has been submitted. If any errors are found during the checking process, the warning messages are displayed on the page. Otherwise, the script confirms that submitted data is correct.

Similarly, the second part of the script constructs the corresponding form and displays it on the web page, by specifying the form elements to be rendered, as well as the fields on which client-side validation is performed. At this point, you’ll agree the overall script is very readable and each of their sections clearly shows what’s going on.

Now, the form processing package that I originally planned to build is completed. As you probably understand, with a wealth of classes behind the scenes charged with the hard work of rendering and processing forms, the use of this library demands only writing some lines of compact and readable code.

To provide you with the complete set of classes developed during the course of this series, the last section shows the source code for the entire form processor. So, let’s go there.



 
 
>>> More PHP Articles          >>> More By Alejandro Gervasio
 

blog comments powered by Disqus
   

PHP ARTICLES

- PHP Closures as View Helpers: Lazy-Loading F...
- Using PHP Closures as View Helpers
- PHP File and Operating System Program Execut...
- PHP: Effects of Wrapping Code in Class Const...
- PHP: Building Concrete Validators
- Sanitizing Input with PHP
- Executing Shell Commands with PHP
- Handling File Data with PHP
- File Security and Resources with PHP
- ArrayObject PHP Class Examples
- ArrayObject PHP Class: An Introduction
- Getting File System Data with PHP
- PHP Tools for Working with the File and Oper...
- Working with the File and Operating System w...
- PHP Proxy Patterns: Completing a Blog


© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 10 - Follow our Sitemap

Dev Shed Tutorial Topics: