filterus icon indicating copy to clipboard operation
filterus copied to clipboard

Email validation doesn't work on an empty string

Open halfer opened this issue 7 years ago • 0 comments

There isn't an implementation for validate for emails, so although an empty string will be correctly filtered to null, it will validate as true, which is not desirable.

Repro code:

$filter = \Filterus\Filter::factory('email');

$result = $filter->filter('');
var_dump($result); // Returns NULL, correct

$ok = $filter->validate('');
echo $ok ? 'Passed' : 'Failed'; // Incorrectly returns Passed

A solution for now is to use a chain, like so:

$filter = \Filterus\Filter::chain('email', 'string,min:1');

$result = $filter->filter('');
var_dump($result); // Returns NULL, correct

$ok = $filter->validate('');
echo $ok ? 'Passed' : 'Failed'; // Correctly returns Failed

halfer avatar Mar 11 '18 20:03 halfer