PHP Classes

File: example.php

Recommend this page to a friend!
  Classes of Andrzej Pomian   Form Validator   example.php   Download  
File: example.php
Role: Example script
Content type: text/plain
Description: Example of usage
Class: Form Validator
Validate values submitted via Web forms
Author: By
Last change:
Date: 20 years ago
Size: 7,755 bytes
 

Contents

Class file image Download
<?PHP
/**
 *
 * FormValidator
 *
 * Example of usage
 */

/*
  Parameters of form elem that are being processed by the class
$elem = array (
   'name' => string, // all
   'type' => string, // text or select
                           // text covers html types: text, textarea, hidden, password
                           // select covers html types: select, checkbox and radio
   'label' => string, // field label ( eg. 'Phone number' )
   'required' => boolean, // field must have value
   'cont' => string, // content type: email, word, alpha, digit
   'ereg' => string, // text, textarea
   'preg' => string, // text, textarea
   'len' => integer, // accurate length
   'len_min' => integer, // min length
   'len_max' => integer, // max length
   'val_max' => integer, // max value of an integer ( use with cont == digit )
   'val_min' => integer, // min value of an integer ( use with cont == digit )
    'values' => array; // select accepted values
    'forbid' => array; // forbidden values that match other criteria
   'arr_size_min' => integer // when field name is an array( eg. 'phones[]' )
                           // minimum number of elements in array
   // Fields dependencies

  
   'eqal' => mixed, // array or string,
                           // value of this field must be equal to value of field in array()
                                   // eg. in when there are two password boxes either array or string
   'with' => mixed, // array or string, value must exist with other value(s)
   'alt_or' => mixed, // array or string, at least one of fields must have a value
   'alt_xor' => mixed // array or string, only one field must have a value
);
*/


require('FormValidator.class.php');

// Form elements definition
$elems[] = array('name'=>'sex','label'=>'sex', 'type'=>'select', 'required'=>true, 'values' => array('Mr.', 'Mrs.', 'Miss', 'Ms.'));
$elems[] = array('name'=>'fname','label'=>'Firstname', 'type'=>'text', 'required'=>true, 'len_max'=>'30');
$elems[] = array('name'=>'sname','label'=>'Family Name', 'type'=>'text', 'required'=>true, 'len_max'=>'30');
$elems[] = array('name'=>'strsel', 'type'=>'select', 'required'=>true, 'values' => array('street','square'));
$elems[] = array('name'=>'street', 'type'=>'text', 'required'=>true, 'len_max'=>'30');
$elems[] = array('name'=>'strno', 'type'=>'text', 'required'=>true, 'len_max'=>'5');
$elems[] = array('name'=>'appartment', 'type'=>'text', 'len_max'=>'4');
$elems[] = array('name'=>'pcode1', 'type'=>'text', 'required'=>true, 'len'=>'2', 'cont' => 'digit');
$elems[] = array('name'=>'pcode2', 'type'=>'text', 'required'=>true, 'len'=>'3', 'cont' => 'digit');
$elems[] = array('name'=>'city', 'type'=>'text', 'required'=>true, 'len_max'=>'30');
$elems[] = array('name'=>'phone', 'type'=>'text', 'required'=>true, 'len_max'=>'30');
$elems[] = array('name'=>'email', 'type'=>'text', 'required'=>true, 'len_max'=>'30', 'cont' => 'email');
$elems[] = array('name'=>'pass1', 'type'=>'text', 'required'=>true, 'len_min'=>'5', 'len_max'=>'30');
$elems[] = array('name'=>'pass2', 'type'=>'text', 'required'=>true, 'len_min'=>'5', 'len_max'=>'30', 'equal'=> array('pass1'));
$elems[] = array('name'=>'ppref', 'type'=>'text', 'len'=>'2', 'arr_size_min'=>1, 'with'=>'pnum', 'cont' => 'digit');
$elems[] = array('name'=>'pnum', 'type'=>'text', 'len'=>'7', 'arr_size_min'=>1, 'with'=>'ppref', 'cont' => 'digit');


// validate form
if ( $_GET['a'] == 's' ) {
   
$f = new FormValidator($elems);
   
$err = $f->validate($_GET);
   
    if (
$err === true ) {
        echo
'<br>You need to correct following fields<br><br>';
       
       
$valid = $f->getValidElems();
       
        foreach (
$valid as $k => $v ) {
            if (
$v[1] == false ) {
               
// Empty label field
               
if ( empty($v[2]) ) {
                   
// then echo the form name of a field
                   
echo $k.'<br>';
                }
                else {
                    echo
$v[2].'<br>';
                }
            }
        }
    }
    else {
        echo
'<br><h3>Form was successfully validated with no errors!</h3><br><br>';
    }
   
}

?>

<form action="example.php" method="get">
<input type="hidden" name="a" value="s">
<table>
<tr>
    <td>&nbsp;</td>
    <td>
        <select name="sex">
            <option <?php if ($_GET['sex']=="Mr.") { echo 'selected';} ?>>Mr.</option>
            <option <?php if ($_GET['sex']=="Mrs.") { echo 'selected';} ?>>Mrs.</option>
            <option <?php if ($_GET['sex']=="Miss") { echo 'selected';} ?>>Miss</option>
            <option <?php if ($_GET['sex']=="Ms.") { echo 'selected';} ?>>Ms.</option>
        </select>
    </td>
</tr>
<tr>
    <td>Name(s)</td>
    <td>
        <input name="fname" size="18" value="<?= $_GET['fname'] ?>" class="{$err_c.fname[0]}" />
    </td>
</tr>
<tr>
    <td>Family name</td>
    <td>
        <input name="sname" size="18" value="<?= $_GET['sname'] ?>" class="{$err_c.sname[0]}" />
    </td>
</tr>
<tr>
    <td> Address of residence</td>
    <td>
        <table>
        <tr>
            <td colspan="2"> &nbsp;street</td>
            <td> No</td>
            <td> appartment</td>
        </tr>
        <tr>
            <td>
                <select name="strsel">
                    <option <?php if ($_GET['strsel']=='street') { echo 'selected';} ?>>street</option>
                    <option <?php if ($_GET['strsel']=='square') { echo 'selected';} ?>>square</option>
                </select>
            </td>
            <td>
                <input size="10" name="street" value="<?= $_GET['street'] ?>"" class="{$err_c.street[0]}" />
            </td>
            <td>
                <input size="2" name="strno" value="<?= $_GET['strno'] ?>" class="{$err_c.strno[0]}" />
            </td>
            <td>
                <input size="2" name="appartment" value="<?= $_GET['appartment'] ?>" class="{$err_c.appartment[0]}" />
            </td>
        </tr>
        </table>
    </td>
</tr>
<tr>
    <td> Post Code</td>
    <td>
        <input maxlength="2" size="2" name="pcode1" value="<?= $_GET['pcode1'] ?>" class="{$err_c.pcode1[0]}" />-
        <input maxlength="3" size="3" name="pcode2" value="<?= $_GET['pcode2'] ?>" class="{$err_c.pcode2[0]}" />
    </td>
</tr>
<tr>
    <td> City</td>
    <td>
        <input name="city" size="18" value="<?= $_GET['city'] ?>" class="{$err_c.city[0]}" />
    </td>
</tr>
<tr>
    <td> Contact Phone</td>
    <td>
        <input name="phone" size="18" value="<?= $_GET['phone'] ?>" class="{$err_c.phone[0]}" />
    </td>
</tr>
<tr>
    <td> E-mail</td>
    <td>
        <input name="email" size="18" value="<?= $_GET['email'] ?>" class="{$err_c.email[0]}" />
    </td>
</tr>
<tr>
    <td> Hasło minimum 5 letters</td>
    <td>
        <input type="password" value="<?= $_GET['pass1'] ?>" name="pass1" size="18" class="{$err_c.pass1[0]}" />
    </td>
</tr>
<tr>
    <td> Confirm password</td>
    <td>
        <input type="password" value="<?= $_GET['pass2'] ?>" name="pass2" size="18" class="{$err_c.pass2[0]}" />
    </td>
</tr>
<tr>
    <td> Phone numbers you are calling from phone number</td>
    <td >
        <table>
        <tr>
            <td> city code</td>
            <td> phone numbers</td>
            <td>&nbsp;</td>
        </tr>

        <tr>
            <td>
                <input maxlength="2" size="2" name="ppref[]" value="<?= $_GET['ppref'][0] ?>" class='{$err_c.ppref[0]}' />
            </td>
            <td>
                <input maxlength="7" size="8" name="pnum[]" value="<?= $_GET['pnum'][0] ?>" class='{$err_c.pnum[0]}' />
            </td>
            <td>&nbsp;</td>
        </tr>
       
        <tr>
            <td>
                <input maxlength="2" size="2" name="ppref[]" value="<?= $_GET['ppref'][1] ?>" class='{$err_c.ppref[1]}' />
            </td>
            <td>
                <input maxlength="7" size="8" name="pnum[]" value="<?= $_GET['pnum'][1] ?>" class='{$err_c.pnum[1]}' />
            </td>
            <td>&nbsp;</td>
        </tr>

        <tr>
            <td>
                <input maxlength="2" size="2" name="ppref[]" value="<?= $_GET['ppref'][2] ?>" class='{$err_c.ppref[2]}' />
            </td>
            <td>
                <input maxlength="7" size="8" name="pnum[]" value="<?= $_GET['pnum'][2] ?>" class='{$err_c.pnum[2]}' />
            </td>
            <td>&nbsp;</td>
        </tr>
       
        <tr>
            <td>&nbsp;</td>
            <td>
                <div align="right"> <br />
                    <input type="submit" value="send" />
                </div>
            </td>
            <td>&nbsp;</td>
        </tr>
        </table>
    </td>
</tr>
</table>

</body>
</html>