private function get_value($name, $mode = null, $default = null, $decode = true)
{
$modes = $this->parse_mode($mode);
foreach ($modes as $mode) {
switch ($mode) {
case 'get':
if (array_key_exists($name, $_GET)) {
$value = $_GET[$name];
return $value;
}
break;
case 'post':
if (array_key_exists($name, $_POST)) {
$value = $_POST[$name];
if (empty($value) or is_numeric($value)) {
return $value;
}
return $this->security_post($value);
}
break;
case 'cookie':
if (array_key_exists($this->cookie_prefix . '_' . $name, $_COOKIE)) {
$value = $_COOKIE[$this->cookie_prefix . '_' . $name];
if ($decode) {
$value = $this->decodeCookie($value);
}
if (empty($value)) {
return $value;
}
return $this->security_cookie($value);
}
break;
case 'session':
if (array_key_exists($this->session_prefix . '_' . $name, $_SESSION)) {
if (!$this->is_session_start) {
$this->sessionStart();
}
$value = $_SESSION[$this->session_prefix . '_' . $name];
if ($decode) {
$value = $this->decodeCookie($value);
}
if (empty($value)) {
return $value;
}
return $this->security_session($value);
}
break;
case 'request':
if (array_key_exists($name, $_POST)) {
$value = $_POST[$name];
if (empty($value) or is_numeric($value)) {
return $value;
}
return $this->security_post($value);
} elseif (array_key_exists($name, $_GET)) {
$value = $_GET[$name];
return $value;
}
break;
case 'env':
if (array_key_exists($name, $_ENV)) {
$value = $_ENV[$name];
return $value;
}
break;
case 'server':
if (array_key_exists($name, $_SERVER)) {
$value = $_SERVER[$name];
return $value;
}
break;
}
}
return $default;
}