componadi/lightvalidate

LightValidate 是一个轻量级且简单的验证组件

1.1.5 2022-05-06 09:10 UTC

This package is auto-updated.

Last update: 2024-09-06 14:36:13 UTC


README

版本 1.1.5

1 - 简单调用

该组件验证表单提交的参数

它的工作方式非常简单,这是一个调用示例

$name = new LightValidate();
$resultName = $name->validate('name', 'POST', 'a', [ 'min' => 3 ]);
  • 第一个参数 'name' -> 是你的变量在 $_POST['name'] 中的名称(在这个例子中是POST方法中)
  • 第二个参数 'POST' -> 定义表单的方法
  • 第三个参数 'a' -> 定义你在表单中变量的类型(在这个例子中是字符串,类型的定义将在第二部分中介绍)
  • 第四个参数 [ 'min' => 3 ] -> 定义字符串变量的最小长度(最小/最大定义将在第二部分中介绍)

1.1 - validate() 方法的结果

此方法的结果是一个包含测试示例信息的数组

如果 $_POST['name'] 包含:Pierre

$name = new LightValidate();
$resultName = $name->validate('name', 'POST', 'a', [ 'min' => 3 ]);

// $resultName contains
$resultName = [
    'data' => "Pierre",
    'isValide' => true,
    'errorMessage' => "everything is ok !"
];

// Whith others parameters
$name = new LightValidate();
$resultName = $name->validate('name', 'POST', 'a', [ 'min' => 8 ]);

//$resultName contains
$resultName = [
    'data' => "Pierre",
    'isValide' => false,
    'errorMessage' => "Your data is too short, your data need longer or equal than : 8"
];

2 - 方法、类型、最小/最大定义

2.1 - 方法定义

当你调用 validate() 时,你需要定义一个方法,这是一个包含有效方法和调用正确 filter_input 中正确 INPUT 的数组

private $validateMethod = [
        'GET' => INPUT_GET,
        'POST' => INPUT_POST
    ];

2.2 - 类型定义

当你调用 validate() 时,你需要定义你想要测试的变量的类型,这是一个包含有效类型并调用正确 filter_input 中正确验证方法(或清理)的数组

private $validateType = [
    'i' => FILTER_VALIDATE_INT,
    'f' => FILTER_VALIDATE_FLOAT,
    'a' => FILTER_SANITIZE_SPECIAL_CHARS,
    'pwd' => FILTER_SANITIZE_SPECIAL_CHARS,
    'url' => FILTER_VALIDATE_URL,
    'mail' => FILTER_VALIDATE_EMAIL
];
  • 'i' => 测试整数
  • 'f' => 测试浮点数
  • 'a' => 测试字符串
  • 'pwd' => 测试密码(你可以定义或添加允许的特殊字符)
  • 'url' => 测试URL
  • 'mail' => 测试电子邮件

2.3 - 最小/最大定义

你可以定义你想要为变量设置的最小或最大值,两者都可以或仅一个,也可以不设置(这是一个可选参数)。

有4个允许的值

  • 'min' -> 定义最小值
  • 'min-e' -> 定义最小或等于值(对于字符串类型不可用)
  • 'max' -> 定义最大值
  • 'max-e' -> 定义最大或等于值(对于字符串类型不可用)

如果你想要定义最小或最大值,你需要像这样定义它

// Exemples about Fourth parameter
[ 'min' => 3 , 'max-e' => 20]
[ 'min-e' => 5 ]
[ 'max' => 10 ]

3 - 修改无效特殊字符以测试密码

默认情况下,无效的特殊字符是: [,:;=|'<>.^*()]

但是你可以修改、添加或删除特殊字符

如果你想查看或了解当前无效的特殊字符,你可以使用

$password = new LightValidate();

echo $password->getInvalideSpecialCharacter(); // -> return "[,:;=|'<>.^*()]" if you modify nothing before

3.1 - 方法 addInvalideSpecialCharacter()

你可以添加一个或多个无效的特殊字符

$newInvalideSpecialCharacter = "{}";

$password = new LightValidate();

$password->addInvalideSpecialCharacter($newInvalideSpecialCharacter); 

// now if you want to see current invalide special character
echo $password->getInvalideSpecialCharacter(); // -> return "[,:;=|'<>.^*()]{}" 

如果你想添加 [] 字符,你需要写 \[\]

3.2 方法 removeInvalideSpecialCharacter()

你可以删除一个或多个无效的特殊字符

// we have not modify $invalideSpecialCharacter before
// we have "[,:;=|'<>.^*()]" value
$removeInvalideSpecialCharacter = ["=", "*"];

$password = new LightValidate();

$password->removeInvalideSpecialCharacter($removeInvalideSpecialCharacter); 

// now if you want to see current invalide special character
echo $password->getInvalideSpecialCharacter(); // -> return "[,:;|'<>.^()]{}" 


// if you want remove one character
// we have not modify $invalideSpecialCharacter before
// we have "[,:;=|'<>.^*()]" value
$removeInvalideSpecialCharacter = "*";

$password = new LightValidate();

$password->removeInvalideSpecialCharacter($removeInvalideSpecialCharacter); 

// now if you want to see current invalide special character
echo $password->getInvalideSpecialCharacter(); // -> return "[,:;=|'<>.^()]{}" 

3.3 方法 setInvalideSpecialCharacter()

你可以设置无效字符

// we have not modify $invalideSpecialCharacter before
// we have "[,:;=|'<>.^*()]" value
$InvalideSpecialCharacter = "^]!§";

$password = new LightValidate();

$password->setInvalideSpecialCharacter($InvalideSpecialCharacter); 

// now if you want to see current invalide special character
echo $password->getInvalideSpecialCharacter(); // -> return "^]!§"