comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:629389204276
1 <?php
2 /*
3 Cette classe permet de filtrer tout le contenu entrant, et permet de se dispenser de
4 toutes les super-globales.
5 Element unique pour l'ensemble de la génération, on y accède via Factory::getRequest()
6 */
7 class Requete
8 {
9 private $arData;
10
11 public function __construct()
12 {
13 $this->loadArray($_POST, 'POST');
14 $this->loadArray($_GET, 'GET');
15 $this->loadArray($_COOKIE, 'COOKIE');
16 }
17
18 // Chargement d'un tableau donné
19 private function loadArray($array, $name = null)
20 {
21 $magic_quotes = (ini_get('magic_quotes_gpc') == '1');
22 if(!is_array($array)) return;
23 if(empty($name)) $name = md5(serialize(microtime()));
24 foreach($array as $key => $value)
25 {
26 $this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value);
27 }
28 }
29
30 // Récuperation d'une des variables
31 public function get($varName, $orig = null, $default = '')
32 {
33 if(!isset($this->arData[$varName])) return $default;
34 if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default;
35 if(!empty($orig)) return $this->arData[$varName][$orig];
36 return current($this->arData[$varName]);
37 }
38
39 // Récuperation d'un tableau de variables dont le nom correspond à un pattern
40 public function matchingPattern($preg_pattern, $orig = null)
41 {
42 $returnValue = array();
43 foreach($this->arData as $key => $array)
44 {
45 if(!preg_match($preg_pattern, $key)) continue;
46 $returnValue[$key] = $this->get($key, $orig);
47 }
48 return $returnValue;
49 }
50
51 // Equivalent de |isset|
52 public function varSet($varName, $orig = null)
53 {
54 if(!isset($this->arData[$varName])) return false;
55 if(is_null($orig)) return true;
56 return (isset($this->arData[$varName][$orig]));
57 }
58 }
59 ?>