Subversion Repositories Applications.framework

Rev

Rev 433 | Rev 461 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 433 Rev 459
Line 15... Line 15...
15
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
15
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
16
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
16
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
17
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
17
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
18
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
18
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
19
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
19
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
20
 * @version	$Id: Bdd.php 433 2013-09-04 14:28:25Z jpm $
20
 * @version	$Id: Bdd.php 459 2014-03-05 16:05:54Z jpm $
21
 * @link		/doc/framework/
21
 * @link		/doc/framework/
22
 */
22
 */
23
class Bdd {
23
class Bdd {
24
	/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
24
	/** Constante stockant le squelette du message en cas d'erreur de requête sql. */
25
	const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
25
	const ERREUR_REQUETE_TPL = 'Requête echec.\nFichier : %s.\nLigne : %s.\nMessage : %s.\nRequête : %s';
Line 92... Line 92...
92
		$this->type = Config::get('bdd_protocole');
92
		$this->type = Config::get('bdd_protocole');
93
		$this->hote = Config::get('bdd_serveur');
93
		$this->hote = Config::get('bdd_serveur');
94
		$this->bdd_nom = Config::get('bdd_nom');
94
		$this->bdd_nom = Config::get('bdd_nom');
95
		$this->utilisateur = Config::get('bdd_utilisateur');
95
		$this->utilisateur = Config::get('bdd_utilisateur');
96
		$this->pass = Config::get('bdd_mot_de_passe');
96
		$this->pass = Config::get('bdd_mot_de_passe');
97
		
97
 
98
		$this->encodage = Config::get('bdd_encodage');
98
		$this->encodage = Config::get('bdd_encodage');
Line 99... Line 99...
99
 
99
 
100
		if ($this->type == 'sqlite' || $this->type == 'sqlite2') {
100
		if ($this->type == 'sqlite' || $this->type == 'sqlite2') {
101
			$this->dsn = $this->type.':'.$this->hote;
101
			$this->dsn = $this->type.':'.$this->hote;
Line 346... Line 346...
346
		}
346
		}
347
		return $retour;
347
		return $retour;
348
	}
348
	}
Line 349... Line 349...
349
 
349
 
-
 
350
	/**
-
 
351
	 * Protège une chaine de caractères ou le contenu d'un tablea avant l'insertion dans la base de données
-
 
352
	 * (ajout de quotes ou guillemets).
-
 
353
	 * @param Mixed une chaine ou un tableau à protéger
-
 
354
	 * @return mixed la chaine ou le tableau à protégé
-
 
355
	 */
-
 
356
	public function proteger($donnees) {
-
 
357
		$this->connecter();
-
 
358
		if (is_array($donnees)) {
-
 
359
			$retour = $this->protegerTableau($donnees);
-
 
360
		} else {
-
 
361
			$retour = $this->protegerChaine($donnees);
-
 
362
		}
-
 
363
		return $retour;
-
 
364
	}
-
 
365
 
350
	/**
366
	/**
351
	 * Protège une chaine de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
367
	 * Protège une chaine de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
352
	 * @param string la chaine à protéger
368
	 * @param string la chaine à protéger
353
	 * @return string la chaine protégée
369
	 * @return string la chaine protégée
354
	 */
370
	 */
355
	public function proteger($chaine) {
-
 
356
		$this->connecter();
-
 
357
 
371
	private function protegerChaine($chaine) {
358
		$retour = $chaine;
372
		$retour = $chaine;
359
		switch ($this->abstraction) {
373
		switch ($this->abstraction) {
360
			case self::ABSTRACTION_PDO :
374
			case self::ABSTRACTION_PDO :
361
				$retour = $this->connexion->quote($chaine);
375
				$retour = $this->connexion->quote($chaine);
Line 370... Line 384...
370
				$retour = $this->connexion->escapeString($chaine);
384
				$retour = $this->connexion->escapeString($chaine);
371
				break;
385
				break;
372
		}
386
		}
373
		return $retour;
387
		return $retour;
374
	}
388
	}
375
	
389
 
376
	/**
390
	/**
377
	* Protège les chaines d'un tableau de caractères avant l'insertion dans la base de données (ajout de quotes ou guillemets).
391
	 * @deprecated changement de nom. Deviendra "private" dans la version 0.5. Utiliser à la place : @see proteger
378
	* @param array le tableau de chaines à protéger
-
 
379
	* @return array le tableau avec les chaines protégées
-
 
380
	*/
392
	 */
381
	public function protegerTableau($tableau) {
393
	public function protegerTableau($tableau) {
382
		$champsProteges = array();
394
		foreach ($tableau as $id => $val) {
-
 
395
			if (is_array($val)) {
383
		foreach($tableau as $champ => $valeur) {
396
				$tableau[$id] = $this->protegerTableau($val);
-
 
397
			} else {
384
			$champsProteges[$champ] = $this->proteger($valeur);
398
				$tableau[$id] = $this->protegerChaine($val);
-
 
399
			}
385
		}
400
		}
386
		return $champsProteges;
401
		return $tableau;
387
	}
402
	}
Line 388... Line 403...
388
 
403
 
389
	/**
404
	/**
390
	 * Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment, dans
405
	 * Retourne l'identifiant de la dernière ligne insérée, ou la dernière valeur d'une séquence d'objets, dépendamment, dans