annotate includes/class.requete.php @ 59:caef2b6e5690

Necessaire pour IE ! Le tag est sinon vide et se retrouve compacté J'avais modifie ca pour rendre le validateur HTML5 content, mais, ce n'est pas vraiment une bonne idee, car sinon le parser XML voit un tag vide, et par consequent lorsqu'il prepare la sortie, il produit un <script /> qu'IE est incapable de gerer correctement.
author Franck Deroche <webmaster@defr.org>
date Tue, 19 Feb 2008 02:54:58 -0800
parents 8d209692d734
children
rev   line source
webmaster@0 1 <?php
webmaster@0 2 /*
webmaster@0 3 Cette classe permet de filtrer tout le contenu entrant, et permet de se dispenser de
webmaster@0 4 toutes les super-globales.
webmaster@0 5 Element unique pour l'ensemble de la génération, on y accède via Factory::getRequest()
webmaster@0 6 */
webmaster@0 7 class Requete
webmaster@0 8 {
webmaster@0 9 private $arData;
webmaster@0 10
webmaster@0 11 public function __construct()
webmaster@0 12 {
webmaster@0 13 $this->loadArray($_POST, 'POST');
webmaster@0 14 $this->loadArray($_GET, 'GET');
webmaster@0 15 $this->loadArray($_COOKIE, 'COOKIE');
webmaster@0 16 }
webmaster@0 17
webmaster@0 18 // Chargement d'un tableau donné
webmaster@0 19 private function loadArray($array, $name = null)
webmaster@0 20 {
webmaster@0 21 $magic_quotes = (ini_get('magic_quotes_gpc') == '1');
webmaster@0 22 if(!is_array($array)) return;
webmaster@0 23 if(empty($name)) $name = md5(serialize(microtime()));
webmaster@0 24 foreach($array as $key => $value)
webmaster@0 25 {
webmaster@41 26 if(empty($value)) $value = $key;
webmaster@0 27 $this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value);
webmaster@0 28 }
webmaster@0 29 }
webmaster@0 30
webmaster@0 31 // Récuperation d'une des variables
webmaster@0 32 public function get($varName, $orig = null, $default = '')
webmaster@0 33 {
webmaster@0 34 if(!isset($this->arData[$varName])) return $default;
webmaster@0 35 if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default;
webmaster@0 36 if(!empty($orig)) return $this->arData[$varName][$orig];
webmaster@0 37 return current($this->arData[$varName]);
webmaster@0 38 }
webmaster@0 39
webmaster@0 40 // Récuperation d'un tableau de variables dont le nom correspond à un pattern
webmaster@0 41 public function matchingPattern($preg_pattern, $orig = null)
webmaster@0 42 {
webmaster@0 43 $returnValue = array();
webmaster@0 44 foreach($this->arData as $key => $array)
webmaster@0 45 {
webmaster@0 46 if(!preg_match($preg_pattern, $key)) continue;
webmaster@0 47 $returnValue[$key] = $this->get($key, $orig);
webmaster@0 48 }
webmaster@0 49 return $returnValue;
webmaster@0 50 }
webmaster@0 51
webmaster@0 52 // Equivalent de |isset|
webmaster@0 53 public function varSet($varName, $orig = null)
webmaster@0 54 {
webmaster@0 55 if(!isset($this->arData[$varName])) return false;
webmaster@0 56 if(is_null($orig)) return true;
webmaster@0 57 return (isset($this->arData[$varName][$orig]));
webmaster@0 58 }
webmaster@0 59 }
webmaster@41 60 ?>