PHP code example of voku / html-form-validator
1. Go to this page and download the library: Download voku/html-form-validator library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
voku / html-form-validator example snippets
use voku\HtmlFormValidator\Validator;
st">
<label>Artist:
<select name="top5" m Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>
</label>
</form>
';
$rules = $formValidator->getAllRules();
static::assertSame(
[
'music' => [
'top5' => 'in(' . \serialize(['Heino','Michael Jackson','Tom Waits','Nina Hagen','Marianne Rosenberg',]) . ')',
],
],
$rules
);
// --- valid
// fake some data
$_POST = [
'top5' => 'Heino',
];
$formValidatorResult = $formValidator->validate($_POST);
static::assertSame([], $formValidatorResult->getErrorMessages());
// --- invalid
// fake some data
$_POST = [
'top5' => 'fooooo',
];
$formValidatorResult = $formValidator->validate($_POST);
static::assertSame(
[
'top5' => [
'"fooooo" must be in { "Heino", "Michael Jackson", "Tom Waits", "Nina Hagen", "Marianne Rosenberg" }',
],
],
$formValidatorResult->getErrorMessages()
);
use voku\HtmlFormValidator\Validator;
"post">
<label for="email">Email:</label>
<input
type="email"
id="email"
name="user[email]"
value=""
data-validator="email"
data-filter="trim"
data-error-class="error-foo-bar"
data-error-message--email="Your email [%s] address is not correct."
data-error-template-selector="span#email-error-message-template"
data-error-template-selector="span#date-error-message-template"
=> ['Your email [foo@isanemail] address is not correct.'],
'user[date]' => [
'Date is not correct.',
'Date is empty.',
],
],
$formValidatorResult->getErrorMessages()
);
// get the new html
static::assertSame(
'
<form id="register" method="post">
<label for="email">Email:</label>
<input
type="email"
id="email"
name="user[email]"
value=""
data-validator="email"
data-filter="trim"
data-error-class="error-foo-bar"
data-error-message--email="Your email [%s] address is not correct."
data-error-template-selector="span#email-error-message-template"
data-error-template-selector="span#date-error-message-template"
$formValidator->addCustomRule(
'foobar',
\Respect\Validation\Validator::allOf(
\Respect\Validation\Validator::intVal(),
\Respect\Validation\Validator::positive()
)
);
namespace Respect\Validation\Rules;
class CustomRule extends AbstractRule
{
/**
* @param string $value
*
* @return bool
*/
public function validate($value)
{
return ($value === 'foobar');
}
}
namespace Respect\Validation\Exceptions;
class CustomRuleException extends ValidationException
{
public static $defaultTemplates = [
self::MODE_DEFAULT => [
self::STANDARD => 'Invalid input... \'foobar\' is only allowed here... ',
],
self::MODE_NEGATIVE => [
self::STANDARD => 'Invalid input... \'foobar\' is not allowed here... ',
],
];
}
$formValidator->addCustomRule('foobar', \Respect\Validation\Rules\CustomRule::class);
$formValidator->addCustomFilter(
'append_lall',
function ($input) {
return $input . 'lall';
}
);