<?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> </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"> 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> </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> </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> </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> </td>
</tr>
<tr>
<td> </td>
<td>
<div align="right"> <br />
<input type="submit" value="send" />
</div>
</td>
<td> </td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
|