147 lines
3.5 KiB
PHP
147 lines
3.5 KiB
PHP
<?php
|
|
/*
|
|
* This example serves to demonstrate how to develop a custom input that
|
|
* implements a new type of validation not supported by the main forms class.
|
|
*
|
|
* @(#) $Id: test_custom_validation.php,v 1.2 2007/03/02 05:58:27 mlemos Exp $
|
|
*
|
|
*/
|
|
|
|
require('forms.php');
|
|
require('form_custom_validation.php');
|
|
|
|
$form=new form_class;
|
|
$form->NAME='custom_validation_form';
|
|
$form->METHOD='POST';
|
|
$form->ACTION='';
|
|
$form->InvalidCLASS='invalid';
|
|
$form->ShowAllErrors=0;
|
|
$form->debug='trigger_error';
|
|
$form->AddInput(array(
|
|
'TYPE'=>'text',
|
|
'ID'=>'first',
|
|
'NAME'=>'first',
|
|
'LABEL'=>'<u>F</u>irst name',
|
|
'ACCESSKEY'=>'F',
|
|
'ValidateAsNotEmpty'=>1,
|
|
'ValidationErrorMessage'=>'It was not specified a valid first name.'
|
|
));
|
|
$form->AddInput(array(
|
|
'TYPE'=>'text',
|
|
'ID'=>'second',
|
|
'NAME'=>'second',
|
|
'LABEL'=>'<u>S</u>econd name',
|
|
'ACCESSKEY'=>'S',
|
|
'ValidateAsNotEmpty'=>1,
|
|
'ValidationErrorMessage'=>'It was not specified a valid second name.'
|
|
));
|
|
|
|
/*
|
|
* Add a custom input that will be used only for validation purposes
|
|
*/
|
|
$error=$form->AddInput(array(
|
|
'TYPE'=>'custom',
|
|
'ID'=>'validation',
|
|
|
|
/*
|
|
* Specify the custom plug-in input class name.
|
|
*/
|
|
'CustomClass'=>'form_custom_validation_class',
|
|
|
|
/*
|
|
* Specify some custom parameters specific of this plug-in input
|
|
*/
|
|
'FirstInput'=>'first',
|
|
'FirstValidationErrorMessage'=>'The first name is contained in the second name.',
|
|
'SecondInput'=>'second',
|
|
'SecondValidationErrorMessage'=>'The second name is contained in the first name.',
|
|
));
|
|
|
|
/*
|
|
* If something went wrong, probably due to missing or invalid parameters,
|
|
* it is safer to exit the script so the rest of the script does not execute
|
|
*/
|
|
if(strlen($error))
|
|
die('Error: '.$error);
|
|
|
|
$form->AddInput(array(
|
|
'TYPE'=>'submit',
|
|
'VALUE'=>'Submit',
|
|
'NAME'=>'doit'
|
|
));
|
|
|
|
|
|
/*
|
|
* The following lines are for testing purposes.
|
|
* Remove these lines when adapting this example to real applications.
|
|
*/
|
|
if(defined("__TEST"))
|
|
{
|
|
if(IsSet($__test_options["ShowAllErrors"]))
|
|
$form->ShowAllErrors=$__test_options["ShowAllErrors"];
|
|
}
|
|
|
|
$focus='first';
|
|
$form->LoadInputValues($form->WasSubmitted('doit'));
|
|
$verify=array();
|
|
if($form->WasSubmitted('doit'))
|
|
{
|
|
if(($error_message=$form->Validate($verify))=='')
|
|
$doit=1;
|
|
else
|
|
{
|
|
$doit=0;
|
|
$error_message=HtmlEntities($error_message);
|
|
Reset($verify);
|
|
$focus=Key($verify);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$error_message='';
|
|
$doit=0;
|
|
}
|
|
|
|
if(!$doit)
|
|
$form->ConnectFormToInput($focus, 'ONLOAD', 'Focus', array());
|
|
|
|
$onload=HtmlSpecialChars($form->PageLoad());
|
|
|
|
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<title>Test for Manuel Lemos' PHP form class using a custom validation plug-in input</title>
|
|
<style type="text/css"><!--
|
|
.invalid { border-color: #ff0000; background-color: #ffcccc; }
|
|
// --></style>
|
|
</head>
|
|
<body onload="<?php echo $onload; ?>" bgcolor="#cccccc">
|
|
<center><h1>Test for Manuel Lemos' PHP form class using a custom validation plug-in input</h1></center>
|
|
<hr />
|
|
<?php
|
|
if($doit)
|
|
{
|
|
?>
|
|
<center><h2>OK</h2></center>
|
|
<?php
|
|
}
|
|
else
|
|
{
|
|
$form->StartLayoutCapture();
|
|
$title='Form custom validation plug-in test';
|
|
$body_template='form_custom_validation.html.php';
|
|
include('templates/form_frame.html.php');
|
|
$form->EndLayoutCapture();
|
|
|
|
/*
|
|
* The custom validation input must also be added to the form output,
|
|
* even though it is not a visible input in the form
|
|
*/
|
|
$form->AddInputPart('validation');
|
|
|
|
$form->DisplayOutput();
|
|
}
|
|
?>
|
|
<hr />
|
|
</body>
|
|
</html>
|