annotate includes/class.requete.php @ 21:86a6793f1408

Temporary fix: si on envoie le prolog xml, IE sort du mode strict... Idealement, il faudrait detecter ça en amont, et utiliser saveHTML ou saveXML en fonction: ce serait probablement plus robuste. Toutefois, il faut encore decider si cela doit se faire par défaut dans la classe Template ou en spécialisation dans skeleton (auquel cas, il est indispensable de passer Template::xmlDocument en protected).
author Franck Deroche <webmaster@defr.org>
date Fri, 26 Oct 2007 17:55:35 +0200
parents 629389204276
children 8d209692d734
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@0 26 $this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value);
webmaster@0 27 }
webmaster@0 28 }
webmaster@0 29
webmaster@0 30 // Récuperation d'une des variables
webmaster@0 31 public function get($varName, $orig = null, $default = '')
webmaster@0 32 {
webmaster@0 33 if(!isset($this->arData[$varName])) return $default;
webmaster@0 34 if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default;
webmaster@0 35 if(!empty($orig)) return $this->arData[$varName][$orig];
webmaster@0 36 return current($this->arData[$varName]);
webmaster@0 37 }
webmaster@0 38
webmaster@0 39 // Récuperation d'un tableau de variables dont le nom correspond à un pattern
webmaster@0 40 public function matchingPattern($preg_pattern, $orig = null)
webmaster@0 41 {
webmaster@0 42 $returnValue = array();
webmaster@0 43 foreach($this->arData as $key => $array)
webmaster@0 44 {
webmaster@0 45 if(!preg_match($preg_pattern, $key)) continue;
webmaster@0 46 $returnValue[$key] = $this->get($key, $orig);
webmaster@0 47 }
webmaster@0 48 return $returnValue;
webmaster@0 49 }
webmaster@0 50
webmaster@0 51 // Equivalent de |isset|
webmaster@0 52 public function varSet($varName, $orig = null)
webmaster@0 53 {
webmaster@0 54 if(!isset($this->arData[$varName])) return false;
webmaster@0 55 if(is_null($orig)) return true;
webmaster@0 56 return (isset($this->arData[$varName][$orig]));
webmaster@0 57 }
webmaster@0 58 }
webmaster@0 59 ?>