about summary refs log tree commit diff stats
path: root/wiki/inc/Input.class.php
diff options
context:
space:
mode:
authorahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
committerahriman <ahriman@falte.red>2019-01-02 04:57:35 +0000
commit2bd7f83a6495011ada78ca8a9f2af417caf01760 (patch)
treef9acdb7f09e011c65330ab993d4db3620787dbfb /wiki/inc/Input.class.php
parentbcb215c3a7e914d05f166846a33860e48bba64fb (diff)
downloadsite-2bd7f83a6495011ada78ca8a9f2af417caf01760.tar.gz
removed dokuwiki
Diffstat (limited to 'wiki/inc/Input.class.php')
-rw-r--r--wiki/inc/Input.class.php335
1 files changed, 0 insertions, 335 deletions
diff --git a/wiki/inc/Input.class.php b/wiki/inc/Input.class.php
deleted file mode 100644
index 199994d..0000000
--- a/wiki/inc/Input.class.php
+++ /dev/null
@@ -1,335 +0,0 @@
-<?php
-
-/**
- * Encapsulates access to the $_REQUEST array, making sure used parameters are initialized and
- * have the correct type.
- *
- * All function access the $_REQUEST array by default, if you want to access $_POST or $_GET
- * explicitly use the $post and $get members.
- *
- * @author Andreas Gohr <andi@splitbrain.org>
- */
-class Input {
-
-    /** @var PostInput Access $_POST parameters */
-    public $post;
-    /** @var GetInput Access $_GET parameters */
-    public $get;
-    /** @var ServerInput Access $_SERVER parameters */
-    public $server;
-
-    protected $access;
-
-    /**
-     * @var Callable
-     */
-    protected $filter;
-
-    /**
-     * Intilizes the Input class and it subcomponents
-     */
-    function __construct() {
-        $this->access = &$_REQUEST;
-        $this->post   = new PostInput();
-        $this->get    = new GetInput();
-        $this->server = new ServerInput();
-    }
-
-    /**
-     * Apply the set filter to the given value
-     *
-     * @param string $data
-     * @return string
-     */
-    protected function applyfilter($data){
-        if(!$this->filter) return $data;
-        return call_user_func($this->filter, $data);
-    }
-
-    /**
-     * Return a filtered copy of the input object
-     *
-     * Expects a callable that accepts one string parameter and returns a filtered string
-     *
-     * @param Callable|string $filter
-     * @return Input
-     */
-    public function filter($filter='stripctl'){
-        $this->filter = $filter;
-        $clone = clone $this;
-        $this->filter = '';
-        return $clone;
-    }
-
-    /**
-     * Check if a parameter was set
-     *
-     * Basically a wrapper around isset. When called on the $post and $get subclasses,
-     * the parameter is set to $_POST or $_GET and to $_REQUEST
-     *
-     * @see isset
-     * @param string $name Parameter name
-     * @return bool
-     */
-    public function has($name) {
-        return isset($this->access[$name]);
-    }
-
-    /**
-     * Remove a parameter from the superglobals
-     *
-     * Basically a wrapper around unset. When NOT called on the $post and $get subclasses,
-     * the parameter will also be removed from $_POST or $_GET
-     *
-     * @see isset
-     * @param string $name Parameter name
-     */
-    public function remove($name) {
-        if(isset($this->access[$name])) {
-            unset($this->access[$name]);
-        }
-        // also remove from sub classes
-        if(isset($this->post) && isset($_POST[$name])) {
-            unset($_POST[$name]);
-        }
-        if(isset($this->get) && isset($_GET[$name])) {
-            unset($_GET[$name]);
-        }
-    }
-
-    /**
-     * Access a request parameter without any type conversion
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return mixed
-     */
-    public function param($name, $default = null, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($nonempty && empty($value)) return $default;
-        return $value;
-    }
-
-    /**
-     * Sets a parameter
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        $this->access[$name] = $value;
-    }
-
-    /**
-     * Get a reference to a request parameter
-     *
-     * This avoids copying data in memory, when the parameter is not set it will be created
-     * and intialized with the given $default value before a reference is returned
-     *
-     * @param string    $name Parameter name
-     * @param mixed     $default If parameter is not set, initialize with this value
-     * @param bool      $nonempty Init with $default if parameter is set but empty()
-     * @return mixed (reference)
-     */
-    public function &ref($name, $default = '', $nonempty = false) {
-        if(!isset($this->access[$name]) || ($nonempty && empty($this->access[$name]))) {
-            $this->set($name, $default);
-        }
-
-        return $this->access[$name];
-    }
-
-    /**
-     * Access a request parameter as int
-     *
-     * @param string    $name     Parameter name
-     * @param int       $default  Default to return if parameter isn't set or is an array
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return int
-     */
-    public function int($name, $default = 0, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($value === '') return $default;
-        if($nonempty && empty($value)) return $default;
-
-        return (int) $value;
-    }
-
-    /**
-     * Access a request parameter as string
-     *
-     * @param string    $name     Parameter name
-     * @param string    $default  Default to return if parameter isn't set or is an array
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return string
-     */
-    public function str($name, $default = '', $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($nonempty && empty($value)) return $default;
-
-        return (string) $value;
-    }
-
-    /**
-     * 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
-        $value = $this->applyfilter($this->access[$name]);
-        $found = array_search($value, $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
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return bool
-     */
-    public function bool($name, $default = false, $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(is_array($this->access[$name])) return $default;
-        $value = $this->applyfilter($this->access[$name]);
-        if($value === '') return $default;
-        if($nonempty && empty($value)) return $default;
-
-        return (bool) $value;
-    }
-
-    /**
-     * Access a request parameter as array
-     *
-     * @param string    $name     Parameter name
-     * @param mixed     $default  Default to return if parameter isn't set
-     * @param bool      $nonempty Return $default if parameter is set but empty()
-     * @return array
-     */
-    public function arr($name, $default = array(), $nonempty = false) {
-        if(!isset($this->access[$name])) return $default;
-        if(!is_array($this->access[$name])) return $default;
-        if($nonempty && empty($this->access[$name])) return $default;
-
-        return (array) $this->access[$name];
-    }
-
-    /**
-     * Create a simple key from an array key
-     *
-     * This is useful to access keys where the information is given as an array key or as a single array value.
-     * For example when the information was submitted as the name of a submit button.
-     *
-     * This function directly changes the access array.
-     *
-     * Eg. $_REQUEST['do']['save']='Speichern' becomes $_REQUEST['do'] = 'save'
-     *
-     * This function returns the $INPUT object itself for easy chaining
-     *
-     * @param string $name
-     * @return Input
-     */
-    public function extract($name){
-        if(!isset($this->access[$name])) return $this;
-        if(!is_array($this->access[$name])) return $this;
-        $keys = array_keys($this->access[$name]);
-        if(!$keys){
-            // this was an empty array
-            $this->remove($name);
-            return $this;
-        }
-        // get the first key
-        $value = array_shift($keys);
-        if($value === 0){
-            // we had a numeric array, assume the value is not in the key
-            $value = array_shift($this->access[$name]);
-        }
-
-        $this->set($name, $value);
-        return $this;
-    }
-}
-
-/**
- * Internal class used for $_POST access in Input class
- */
-class PostInput extends Input {
-    protected $access;
-
-    /**
-     * Initialize the $access array, remove subclass members
-     */
-    function __construct() {
-        $this->access = &$_POST;
-    }
-
-    /**
-     * Sets a parameter in $_POST and $_REQUEST
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        parent::set($name, $value);
-        $_REQUEST[$name] = $value;
-    }
-}
-
-/**
- * Internal class used for $_GET access in Input class
- */
-class GetInput extends Input {
-    protected $access;
-
-    /**
-     * Initialize the $access array, remove subclass members
-     */
-    function __construct() {
-        $this->access = &$_GET;
-    }
-
-    /**
-     * Sets a parameter in $_GET and $_REQUEST
-     *
-     * @param string $name Parameter name
-     * @param mixed  $value Value to set
-     */
-    public function set($name, $value) {
-        parent::set($name, $value);
-        $_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;
-    }
-
-}