function qwp_validate_data(&$f, &$rules, &$filters = null, $just_unset_when_failed = false) { $msg_base = L('Invalid form data'); $valid_fields = array(); $predefined_rules = get_input_rules(); foreach ($rules as $field_name => &$rule) { $field_value = isset($f[$field_name]) ? $f[$field_name] : null; $valid_fields[$field_name] = true; if (isset($rule['_msg'])) { $msg =& $rule['_msg']; } else { $msg =& $msg_base; } if (isset($rule['required'])) { if ($field_value === null || $field_value === '') { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return $msg . '. ' . L('Current value is empty!'); } } else { if (isset($rule['optional'])) { if ($field_value === null || $field_value === '') { continue; } } } foreach ($rule as $key => $item) { if (substr($key, 0, 1) == '_') { if ($key == '_avoidSqlInj') { $f[$field_name] = mysql_real_escape_string($field_value); } continue; } if ($key == 'required' || $key == 'optional') { continue; } if ($key == 'date') { if (!date_to_int($field_value)) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'datetime') { if (!datetime_to_int($field_value)) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'digits') { if (!is_digits($field_value)) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'minlength') { $len = mb_strlen($field_value, 'utf8'); if ($len < $item) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'maxlength') { $len = mb_strlen($field_value, 'utf8'); if ($len > $item) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'rangelength') { $len = mb_strlen($field_value, 'utf8'); if ($len < $item[0] || $len > $item[1]) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'min') { if ($field_value < $item) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'max') { if ($field_value > $item) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'range' || $key == '[]') { if ($field_value < $item[0] || $field_value > $item[1]) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'equalTo' || $key == '=') { $equal_item = isset($f[$item[1]]) ? $f[$item[1]] : null; if ($field_value != $equal_item) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == 'in') { if (!in_array($field_value, $item)) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == '[)') { if ($field_value < $item[0] || $field_value >= $item[1]) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == '(]') { if ($field_value <= $item[0] || $field_value > $item[1]) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { if ($key == '()') { if ($field_value <= $item[0] || $field_value >= $item[1]) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } else { $fn_ret = is_valid_input($field_value, $key, $predefined_rules); if ($fn_ret !== -1 && !$fn_ret) { if ($just_unset_when_failed) { unset($f[$field_name]); continue; } return qwp_validate_get_error($msg, $field_value); } } } } } } } } } } } } } } } } } if ($filters) { qwp_filter_form_values($f, $filters); } remove_unwanted_data($f, $valid_fields); return true; }
function is_ipv6($v) { static $statement; if (!isset($statement)) { $statement = get_input_rules('ipv6'); } return preg_match("/" . $statement . "/", $v); }