$value) { $decodedKey = stripslashes($key); if (is_array($value)) { $decodedValue = Input::CleanMagicQuotes($value); } else { $decodedValue = stripslashes($value); } $gpcList[$decodedKey] = $decodedValue; } return $gpcList; } // fn CleanMagicQuotes /** * Get an input value from the $_REQUEST array and check its type. * The default value is returned if the value is not defined in the * $_REQUEST array, or if the value does not match the required type. * * The type 'checkbox' is special - you cannot specify a default * value for this. The return value will be TRUE or FALSE, but * you can change this by specifying 'numeric' as the 3rd parameter * in which case it will return '1' or '0'. * * Use Input::IsValid() to check if any errors were generated. * * @param string $p_varName * The index into the $_REQUEST array. * * @param string $p_type * The type of data expected; can be: * "int" * "string" * "array" * "checkbox" * "boolean" * * Default is 'string'. * * @param mixed $p_defaultValue * The default value to return if the value is not defined in * the $_REQUEST array, or if the value does not match * the required type. * * @param boolean $p_errorsOk * Set to true to ignore any errors for this variable (i.e. * Input::IsValid() will still return true even if there * are errors for this varaible). * * @return mixed */ function Get($p_varName, $p_type = 'string', $p_defaultValue = null, $p_errorsOk = false) { global $g_inputErrors; $p_type = strtolower($p_type); if ($p_type == 'checkbox') { if (strtolower($p_defaultValue) != 'numeric') { return isset($_REQUEST[$p_varName]); } else { return isset($_REQUEST[$p_varName]) ? '1' : '0'; } } if (!isset($_REQUEST[$p_varName])) { if (!$p_errorsOk) { $g_inputErrors[$p_varName] = 'not set'; } return $p_defaultValue; } // Clean the slashes if (get_magic_quotes_gpc()) { if (is_array($_REQUEST[$p_varName])) { $_REQUEST[$p_varName] = Input::CleanMagicQuotes($_REQUEST[$p_varName]); } else { $_REQUEST[$p_varName] = stripslashes($_REQUEST[$p_varName]); } } switch ($p_type) { case 'boolean': $value = strtolower($_REQUEST[$p_varName]); if ( ($value == "true") || (is_numeric($value) && ($value > 0)) ) { return true; } else { return false; } break; case 'int': if (!is_numeric($_REQUEST[$p_varName])) { if (!$p_errorsOk) { $g_inputErrors[$p_varName] = 'Incorrect type. Expected type '.$p_type .', but received type '.gettype($_REQUEST[$p_varName]).'.' .' Value is "'.$_REQUEST[$p_varName].'".'; } return $p_defaultValue; } break; case 'string': if (!is_string($_REQUEST[$p_varName])) { if (!$p_errorsOk) { $g_inputErrors[$p_varName] = 'Incorrect type. Expected type '.$p_type .', but received type '.gettype($_REQUEST[$p_varName]).'.' .' Value is "'.$_REQUEST[$p_varName].'".'; } return $p_defaultValue; } break; case 'array': if (!is_array($_REQUEST[$p_varName])) { // Create an array if it isnt one already. // Arrays are used with checkboxes and radio buttons. // The problem with them is that if there is only one // checkbox, the given value will not be an array. So // we make it easy for the programmer by always returning // an array. $newArray = array(); $newArray[] = $_REQUEST[$p_varName]; return $newArray; // if (!$p_errorsOk) { // $g_inputErrors[$p_varName] = 'Incorrect type. Expected type '.$p_type // .', but received type '.gettype($_REQUEST[$p_varName]).'.' // .' Value is "'.$_REQUEST[$p_varName].'".'; // } // return $p_defaultValue; } } return $_REQUEST[$p_varName]; } // fn get /** * Return FALSE if any calls to Input::Get() resulted in an error. * @return boolean */ function IsValid() { global $g_inputErrors; if (count($g_inputErrors) > 0) { return false; } else { return true; } } // fn isValid /** * Return a default error string. * @return string */ function GetErrorString() { global $g_inputErrors; ob_start(); print_r($g_inputErrors); $str = ob_get_clean(); return $str; } // fn GetErrorString } // class Input ?>