annotate includes/class.requete.php @ 74:d9490757a111

Aide pour IE: Classes explicites et pas de syntaxe XHTML. Le selecteur [id^='Gest'], bien que pratique, n'est pas supporter par IE6. En conséquence, j'ai ajouté une classe Gestion sur l'ensemble des div concernés et j'ai remplacé cela par un très classique div.Gestion. D'autre part, visiblement, le <label /> faisait plus que troubler IE, qui ne comprenait par conséquent pas bien ou ce dernier ce finissait. Le problème a été réglé en décompactant la balise.
author Franck Deroche <webmaster@defr.org>
date Mon, 31 Mar 2008 14:53:49 +0200
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 ?>