我正在使用jQuery Form Validation Plugin进行全面的客户端验证。
现在我想使用PHP进行服务器端验证。
检查电子邮件是否为电子邮件,年龄是否在正确的范围内等。
我是否可以使用类似的包或函数集合而不是手动编写所有验证方法?
谢谢
答案 0 :(得分:1)
如果您正在编写更多或更少复杂的应用程序,您可能会从使用框架中受益,例如Zend Framework。它有一些独立的类来帮助验证过程,例如Zend_Validate:http://framework.zend.com/manual/en/zend.validate.html
答案 1 :(得分:1)
与PHP捆绑在一起的最接近的是filter extension。它进行验证和消毒。
答案 2 :(得分:1)
对于电子邮件验证,您可以使用is_email
功能。
检查链接:http://www.ohloh.net/p/isemail
答案 3 :(得分:0)
这些是我使用的几种方法
<?php
function chkReq($fields) {
foreach($fields as $name) {
if(req($name)) {
global $values;
$values[$name] = $_POST[$name];
} else {
global $errors;
$errors[$name] = "This field is required";
}
}
}
function req($name) {
if(isset($_POST[$name]) && !empty($_POST[$name])) {
return true;
} else {
return false;
}
}
function chkDate($name, $from, $to) {
global $errors;
global $values;
if(!req($name)) {
$errors[$name] = "This field is required";
} elseif(!betweenNumbers($_POST[$name], $from, $to)) {
$errors[$name] = "Value must be between $from en $to .";
$values[$name] = $_POST[$name];
} else {
$values[$name] = $_POST[$name];
}
}
function betweenNumbers($value, $from, $to) {
if($value >= $from && $value <= $to) {
return true;
} else {
return false;
}
}
function chk3Fields($field1, $field2, $field3) {
global $errors;
global $values;
if(!req($field1) && !req($field2) && !req($field3)) {
$errors[$field1] = "One of the three fields is required";
$errors[$field2] = "One of the three fields is required";
$errors[$field3] = "One of the three fields is required";
} else {
$values[$field1] = $_POST[$field1];
$values[$field2] = $_POST[$field2];
$values[$field3] = $_POST[$field3];
}
}
function checkRegistry($name){
global $errors;
global $values;
if(!req($name)) {
$errors[$name] = "This field is mandatory";
} elseif(!validRegistry($_POST[$name])) {
$errors[$name] = "This is not a valid registry number";
$values[$name] = $_POST[$name];
} else {
$values[$name] = $_POST[$name];
}
}
function validRegistry($value) {
$value = preg_replace("/(\.|-)/", "", $value);
$firstPart= substr($value, 0,9);
$residueFirstPart= $firstPart% 97;
$calculatedControlNr = 97 - $residueFirstPart;
$obzervedControlNr = substr($value, 9, 2);
return ($calculatedControlNr == $obzervedControlNr);
}
?>