annotate includes/class.requete.php @ 70:e08186e4ed77

Ajout d'un installeur. Il est désormais possible d'utiliser ce script pour créer une installation vierge de Dual Blog, rendant presque facile la création de sa propre instance du blog :-) Une chose à noter cependant: il est encore /impératif/ de modifier le fichier pointant vers le fichier .htpass dans le .htaccess à la main pour le moment.
author Franck Deroche <webmaster@defr.org>
date Wed, 19 Mar 2008 12:08:15 +0100
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 ?>