function testNonRangeNextToAlpha() { $this->assertEquals("0123456789-+", expand_chars_exp("0-9\\-+")); }
function validate_s_config_group_item($group_id, $id, $keyid, $value) { if (strlen($group_id) > 0 && strlen($id) > 0 && strlen($keyid) > 0) { $query = "SELECT type, subtype FROM s_config_group_item WHERE group_id = '{$group_id}' AND id = '{$id}' "; if (is_numeric($keyid)) { $query .= " AND (type = 'array' OR keyid = '{$keyid}') "; } else { $query .= " AND keyid = '{$keyid}' "; } $query .= "LIMIT 0,1"; $result = db_query($query); if ($result && db_num_rows($result) > 0) { $found = db_fetch_assoc($result); $value = trim($value); // will not directly validate an array, but instead the subtype of the array. if ($found['type'] == 'array') { // by default its text if (strlen($found['subtype']) == 0) { $found['subtype'] = 'text'; } if ($found['subtype'] == 'usertype') { $found['type'] = 'usertype'; } else { if ($found['subtype'] == 'number') { $found['type'] = 'number'; } else { $found['type'] = 'text'; } } } switch ($found['type']) { case 'boolean': $value = strtoupper($value); if ($value == 'TRUE' || $value == 'FALSE') { return $value; } else { return 'FALSE'; } case 'email': if (is_valid_email_addr($value)) { return $value; } else { return FALSE; } case 'number': // filter out any non-numeric characters, but pass the rest in. $value = remove_illegal_chars($value, expand_chars_exp('0-9')); if (strlen($value) > 0) { return $value; } else { return FALSE; } case 'datemask': // TODO: Provide a date-mask filter return $value; case 'language': if (is_exists_language($value)) { return $value; } else { return FALSE; } case 'theme': if (is_exists_theme($value)) { return $value; } else { return FALSE; } case 'export': if (strlen($value) == 0 || is_export_plugin($value)) { return $value; } else { return FALSE; } case 'value_select': if (strlen($found['subtype']) > 0) { $options_r = explode(',', $found['subtype']); } if (!is_array($options_r) || in_array($value, $options_r) !== FALSE) { return $value; } else { return FALSE; } //case 'readonly': // return $value; //case 'text': //case 'password': //case 'textarea': // return addslashes(replace_newlines(trim($value))); //case 'readonly': // return $value; //case 'text': //case 'password': //case 'textarea': // return addslashes(replace_newlines(trim($value))); default: return addslashes(replace_newlines(trim($value))); } //switch db_free_result($result); } else { return FALSE; } } //else return FALSE; }
function filtered_field($name, $prompt, $length, $maxlength, $legalCharsExp, $compulsory_ind, $value, $onchange_event = NULL, $disabled = FALSE, $multi_value = FALSE) { // Default size. $size = $length; if (!is_numeric($size) || $size <= 0) { $size = 50; } if (get_opendb_config_var('widgets', 'enable_javascript_validation') !== FALSE) { // Get list of legal characters. $legalChars = expand_chars_exp($legalCharsExp); if (strlen($legalChars) == 0) { //Default if not defined. $legalChars = expand_chars_exp('a-zA-Z0-9_.'); } $onchange = "onchange=\"this.value=legalCharFilter(this.value, '" . $legalChars . "'); " . compulsory_ind_check($prompt, $compulsory_ind) . " {$onchange_event} return true;\""; } else { $onchange = "onchange=\"{$onchange_event}\""; } if ($multi_value) { return multivalue_text_field('text', $name, $size, $maxlength, $onchange, $value); } else { return singlevalue_text_field('text', $name, $size, $maxlength, $onchange, $value, $disabled); } }