summaryrefslogtreecommitdiff
path: root/inc/Input.class.php
diff options
context:
space:
mode:
authorGerry Weißbach <gerry.w@gammaproduction.de>2014-07-16 08:02:34 +0200
committerGerry Weißbach <gerry.w@gammaproduction.de>2014-07-16 08:02:34 +0200
commit0bd5b90b4c1294b3c9abc1977060f971dc2e2744 (patch)
treeac79a7402ffef718685f16dbba6692a0c9b5f458 /inc/Input.class.php
parent1858e4d7685782550789fd8c228e55ae319bc37a (diff)
parent80679bafa1a5ed611bafc603afd0ae7b2b5954a7 (diff)
downloadrpg-0bd5b90b4c1294b3c9abc1977060f971dc2e2744.tar.gz
rpg-0bd5b90b4c1294b3c9abc1977060f971dc2e2744.tar.bz2
Merge remote-tracking branch 'splitbrain/master'
Diffstat (limited to 'inc/Input.class.php')
-rw-r--r--inc/Input.class.php38
1 files changed, 38 insertions, 0 deletions
diff --git a/inc/Input.class.php b/inc/Input.class.php
index 7434d2b2c..e7eef1c29 100644
--- a/inc/Input.class.php
+++ b/inc/Input.class.php
@@ -15,6 +15,8 @@ class Input {
public $post;
/** @var GetInput Access $_GET parameters */
public $get;
+ /** @var ServerInput Access $_SERVER parameters */
+ public $server;
protected $access;
@@ -25,6 +27,7 @@ class Input {
$this->access = &$_REQUEST;
$this->post = new PostInput();
$this->get = new GetInput();
+ $this->server = new ServerInput();
}
/**
@@ -141,6 +144,26 @@ class Input {
}
/**
+ * Access a request parameter and make sure it is has a valid value
+ *
+ * Please note that comparisons to the valid values are not done typesafe (request vars
+ * are always strings) however the function will return the correct type from the $valids
+ * array when an match was found.
+ *
+ * @param string $name Parameter name
+ * @param array $valids Array of valid values
+ * @param mixed $default Default to return if parameter isn't set or not valid
+ * @return null|mixed
+ */
+ public function valid($name, $valids, $default = null) {
+ if(!isset($this->access[$name])) return $default;
+ if(is_array($this->access[$name])) return $default; // we don't allow arrays
+ $found = array_search($this->access[$name], $valids);
+ if($found !== false) return $valids[$found]; // return the valid value for type safety
+ return $default;
+ }
+
+ /**
* Access a request parameter as bool
*
* Note: $nonempty is here for interface consistency and makes not much sense for booleans
@@ -260,3 +283,18 @@ class GetInput extends Input {
$_REQUEST[$name] = $value;
}
}
+
+/**
+ * Internal class used for $_SERVER access in Input class
+ */
+class ServerInput extends Input {
+ protected $access;
+
+ /**
+ * Initialize the $access array, remove subclass members
+ */
+ function __construct() {
+ $this->access = &$_SERVER;
+ }
+
+}