Я бы использовал что-то в этом духе ... Просто закодировал это очень быстро, в основном вы создаете функции проверки, которые соответствуют полям записи и возвращают true или false, если проверка прошла успешно.например, validate_department, validate_type, validate_drink и т. д. Будет работать, если в ваших данных поста нет каких-либо странных символов (которых пока нет)
$post_fields = array('rep',
'name',
'department',
'location',
'email',
'phone',
'type',
'drink',
'lastVisited',
'nextVisit'
);
$validate = new Validate();
foreach ($post_fields as $post_var)
{
if (isset($_POST[$post_var]))
{
$validate->validate_data($post_var, $_POST[$post_var]);
}
}
if ($validate->all_fields_valid() === true)
{
echo 'congrats, all validation passed!';
}
else
{
echo 'oh no! error in validation process. please see below errors: <p>' .
$validate->get_error_msg() . '</p>';
}
И класс проверки ... Использовать $errorMsg, чтобы увидеть сообщения об ошибках при возникновении любых проблем
class Validate
{
var $valid = 0,
$error = 0,
$errorMsg = '';
function validate_data($var, $data)
{
if (method_exists($this, 'validate_'.$var))
{
if (call_user_func(array($this, 'validate_'.$var), $data) === true)
{
$this->valid++;
}
else
{
$this->throwError('validation for: "'.$var.'" was not considered valid');
}
}
else
{
$this->throwError('validation function for: "'.$var.'" does not exist');
}
}
function throwError($msg = '')
{
if ($msg) $this->errorMsg .= $msg . '<br/>';
$this->error++;
}
function all_fields_valid()
{
if (!$this->error) return true;
return false;
}
/***********************************************
*************************************************
Custom validation functions go below here
Function format: validate_<postFieldName>
Returns: true or false if the data passed is valid or not
*************************************************
*************************************************/
function validate_type($type)
{
if (is_numeric($type)) return true;
return false;
}
function validate_lastVisited($data)
{
}
//etc...............
}