102 lines
2.3 KiB
PHP
102 lines
2.3 KiB
PHP
|
<?php
|
||
|
|
||
|
define('INP_GET', 0x0001); // nur _GET benutzen
|
||
|
define('INP_POST', 0x0002); // nur _POST benutzen
|
||
|
define('INP_INT', 0x0004); // Integer
|
||
|
define('INP_STRING', 0x0008); // String
|
||
|
define('INP_ARRAY', 0x0010); // Form-Array
|
||
|
define('INP_FLAGS', 0x0020); // Form-Array with Flags (return single int)
|
||
|
define('INP_EMPTY', 0x0040); // Leerer Wert erlaubt
|
||
|
define('INP_DEFAULT', 0x0080); // Leerer oder Falscher Wert wird ersetzt
|
||
|
|
||
|
/**
|
||
|
* Input Checking Class
|
||
|
* @todo sql-injection escaping?
|
||
|
*/
|
||
|
class Input {
|
||
|
/**
|
||
|
* Holt eine Variable vom Request
|
||
|
* @param string $name - Name der Variable
|
||
|
* @param int $flags - Flags
|
||
|
* @param mixed $default - Defaultwert
|
||
|
* @param mixed $values - Erlaubte Werte (optional)
|
||
|
* @return mixed
|
||
|
*/
|
||
|
static function getVar($name, $flags, $default = '', $values = false) {
|
||
|
if (($flags & INP_GET) && isset($_GET[$name]))
|
||
|
$var = $_GET[$name];
|
||
|
|
||
|
if (($flags & INP_POST) && isset($_POST[$name]))
|
||
|
$var = $_POST[$name];
|
||
|
|
||
|
if (isset($var)) {
|
||
|
/* Integer requested */
|
||
|
if ($flags & INP_INT) {
|
||
|
if (is_numeric($var))
|
||
|
settype($var, "int");
|
||
|
else
|
||
|
$var = false;
|
||
|
|
||
|
/* String requested */
|
||
|
} else if ($flags & INP_STRING) {
|
||
|
settype($var, "string");
|
||
|
|
||
|
/* Array requested */
|
||
|
} else if ($flags & INP_ARRAY) {
|
||
|
if (!is_array($var))
|
||
|
$var = false;
|
||
|
|
||
|
/* FlagArray */
|
||
|
} else if ($flags & INP_FLAGS) {
|
||
|
if (is_array($var) && count($var) > 0) {
|
||
|
$tmp = 0;
|
||
|
foreach ($var as $key => $value)
|
||
|
$tmp |= $value;
|
||
|
|
||
|
$var = $tmp;
|
||
|
|
||
|
} else {
|
||
|
$var = false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Erlaubter Wert */
|
||
|
if (is_array($values) && !in_array($var, $values))
|
||
|
$var = false;
|
||
|
|
||
|
/* Empty erlaubt */
|
||
|
} else if ($flags & INP_EMPTY) {
|
||
|
return;
|
||
|
|
||
|
/* Empty nicht erlaubt */
|
||
|
} else {
|
||
|
$var = false;
|
||
|
}
|
||
|
|
||
|
/* Defaultwert einsetzen */
|
||
|
if (($flags & INP_DEFAULT) && ($var === false))
|
||
|
$var = $default;
|
||
|
|
||
|
return $var;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Holt eine Integervariable vom Request
|
||
|
* @param string $name - Name der Variable
|
||
|
* @param int $flags - Flags
|
||
|
* @param int $default - Defaultwert
|
||
|
* @param int $min - Minimaler Wert
|
||
|
* @param int $max - Maximaler Wert
|
||
|
* @return int
|
||
|
*/
|
||
|
static function getInteger($name, $flags, $default, $min, $max) {
|
||
|
$flags &= ~(INP_STRING | INP_EMPTY);
|
||
|
$flags |= (INP_INT);
|
||
|
$var = Input::getVar($name, $flags, $default);
|
||
|
|
||
|
return ($var >= $min && $var <= $max) ? $var : false;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|