Mercurial > defr > DualBlog
diff includes/class.requete.php @ 0:629389204276
Import initial
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Sat, 20 Oct 2007 14:15:10 +0200 |
parents | |
children | 8d209692d734 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/includes/class.requete.php Sat Oct 20 14:15:10 2007 +0200 @@ -0,0 +1,59 @@ +<?php +/* + Cette classe permet de filtrer tout le contenu entrant, et permet de se dispenser de + toutes les super-globales. + Element unique pour l'ensemble de la génération, on y accède via Factory::getRequest() +*/ + class Requete + { + private $arData; + + public function __construct() + { + $this->loadArray($_POST, 'POST'); + $this->loadArray($_GET, 'GET'); + $this->loadArray($_COOKIE, 'COOKIE'); + } + + // Chargement d'un tableau donné + private function loadArray($array, $name = null) + { + $magic_quotes = (ini_get('magic_quotes_gpc') == '1'); + if(!is_array($array)) return; + if(empty($name)) $name = md5(serialize(microtime())); + foreach($array as $key => $value) + { + $this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value); + } + } + + // Récuperation d'une des variables + public function get($varName, $orig = null, $default = '') + { + if(!isset($this->arData[$varName])) return $default; + if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default; + if(!empty($orig)) return $this->arData[$varName][$orig]; + return current($this->arData[$varName]); + } + + // Récuperation d'un tableau de variables dont le nom correspond à un pattern + public function matchingPattern($preg_pattern, $orig = null) + { + $returnValue = array(); + foreach($this->arData as $key => $array) + { + if(!preg_match($preg_pattern, $key)) continue; + $returnValue[$key] = $this->get($key, $orig); + } + return $returnValue; + } + + // Equivalent de |isset| + public function varSet($varName, $orig = null) + { + if(!isset($this->arData[$varName])) return false; + if(is_null($orig)) return true; + return (isset($this->arData[$varName][$orig])); + } + } +?> \ No newline at end of file