Line 58... |
Line 58... |
58 |
|
58 |
|
59 |
protected function envoyerJson($donnees, $encodage = 'utf-8') {
|
59 |
protected function envoyerJson($donnees, $encodage = 'utf-8') {
|
60 |
$contenu = json_encode($donnees);
|
60 |
$contenu = json_encode($donnees);
|
61 |
$this->envoyer($contenu, 'application/json', $encodage, false);
|
61 |
$this->envoyer($contenu, 'application/json', $encodage, false);
|
62 |
}
|
62 |
}
|
63 |
|
63 |
|
64 |
protected function envoyerJsonVar($variable, $donnees = null, $encodage = 'utf-8') {
|
64 |
protected function envoyerJsonVar($variable, $donnees = null, $encodage = 'utf-8') {
|
65 |
$contenu = "var $variable = ".json_encode($donnees);
|
65 |
$contenu = "var $variable = ".json_encode($donnees);
|
66 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
66 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
67 |
}
|
67 |
}
|
68 |
|
68 |
|
69 |
protected function envoyerJsonp($donnees = null, $encodage = 'utf-8') {
|
69 |
protected function envoyerJsonp($donnees = null, $encodage = 'utf-8') {
|
70 |
$contenu = $_GET['callback'].'('.json_encode($donnees).');';
|
70 |
$contenu = $_GET['callback'].'('.json_encode($donnees).');';
|
71 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
71 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
72 |
}
|
72 |
}
|
73 |
|
73 |
|
74 |
protected function envoyerTxt($donnees, $encodage = 'utf-8') {
|
74 |
protected function envoyerTxt($donnees, $encodage = 'utf-8') {
|
75 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
75 |
$this->envoyer($contenu, 'text/html', $encodage, false);
|
Line 76... |
Line 76... |
76 |
}
|
76 |
}
|
Line 118... |
Line 118... |
118 |
} else if (!is_null($mime) && is_null($encodage)) {
|
118 |
} else if (!is_null($mime) && is_null($encodage)) {
|
119 |
header("Content-Type: $mime");
|
119 |
header("Content-Type: $mime");
|
120 |
}
|
120 |
}
|
121 |
print $contenu;
|
121 |
print $contenu;
|
122 |
}
|
122 |
}
|
123 |
|
123 |
|
124 |
private function envoyerAuth($message_accueil, $message_echec) {
|
124 |
private function envoyerAuth($message_accueil, $message_echec) {
|
125 |
header('HTTP/1.0 401 Unauthorized');
|
125 |
header('HTTP/1.0 401 Unauthorized');
|
126 |
header('WWW-Authenticate: Basic realm="'.mb_convert_encoding($message_accueil, 'ISO-8859-1', 'UTF-8').'"');
|
126 |
header('WWW-Authenticate: Basic realm="'.mb_convert_encoding($message_accueil, 'ISO-8859-1', 'UTF-8').'"');
|
127 |
header('Content-type: text/plain; charset=UTF-8');
|
127 |
header('Content-type: text/plain; charset=UTF-8');
|
128 |
print $message_echec;
|
128 |
print $message_echec;
|
129 |
exit(0);
|
129 |
exit(0);
|
130 |
}
|
130 |
}
|
131 |
|
131 |
|
132 |
//+----------------------------------------------------------------------------------------------------------------+
|
132 |
//+----------------------------------------------------------------------------------------------------------------+
|
133 |
// GESTION de la BASE de DONNÉES
|
133 |
// GESTION de la BASE de DONNÉES
|
134 |
|
134 |
|
135 |
private function connecterPDO($config, $base = 'database') {
|
135 |
private function connecterPDO($config, $base = 'database') {
|
136 |
$cfg = $config[$base];
|
136 |
$cfg = $config[$base];
|
- |
|
137 |
// ATTENTION : la connexin à la bdd peut échouer si l'host vaut localhost. Utiliser 127.0.0.1 à la place.
|
137 |
$dsn = $cfg['phptype'].':dbname='.$cfg['database'].';host='.$cfg['hostspec'];
|
138 |
$dsn = $cfg['phptype'].':dbname='.$cfg['database'].';host='.$cfg['hostspec'];
|
138 |
try {
|
139 |
try {
|
- |
|
140 |
// Création de la connexion en UTF-8 à la BDD
|
139 |
$PDO = new PDO($dsn, $cfg['username'], $cfg['password']);
|
141 |
$PDO = new PDO($dsn, $cfg['username'], $cfg['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'"));
|
140 |
} catch (PDOException $e) {
|
142 |
} catch (PDOException $e) {
|
141 |
echo 'La connexion à la base de donnée via PDO a échouée : ' . $e->getMessage();
|
143 |
echo 'La connexion à la base de donnée via PDO a échouée : ' .$dsn. $e->getMessage();
|
142 |
}
|
144 |
}
|
143 |
// Passe en UTF-8 la connexion à la BDD
|
- |
|
144 |
$PDO->exec("SET NAMES 'utf8'");
|
- |
|
145 |
// Affiche les erreurs détectées par PDO (sinon mode silencieux => aucune erreur affiché)
|
145 |
// Affiche les erreurs détectées par PDO (sinon mode silencieux => aucune erreur affiché)
|
146 |
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
146 |
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
147 |
return $PDO;
|
147 |
return $PDO;
|
148 |
}
|
148 |
}
|
Line 156... |
Line 156... |
156 |
return $sortie;
|
156 |
return $sortie;
|
157 |
}
|
157 |
}
|
Line 158... |
Line 158... |
158 |
|
158 |
|
159 |
//+----------------------------------------------------------------------------------------------------------------+
|
159 |
//+----------------------------------------------------------------------------------------------------------------+
|
160 |
// TRAITEMENT des URLs et des PARAMÊTRES
|
160 |
// TRAITEMENT des URLs et des PARAMÊTRES
|
161 |
|
161 |
|
162 |
protected function traiterNomMethodeGet($nom) {
|
162 |
protected function traiterNomMethodeGet($nom) {
|
163 |
$methode = 'get';
|
163 |
$methode = 'get';
|
164 |
$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
|
164 |
$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
|
165 |
return $methode;
|
165 |
return $methode;
|
166 |
}
|
166 |
}
|
167 |
|
167 |
|
168 |
protected function traiterNomMethodePost($nom) {
|
168 |
protected function traiterNomMethodePost($nom) {
|
169 |
$methode = 'update';
|
169 |
$methode = 'update';
|
170 |
$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
|
170 |
$methode .= str_replace(' ', '', ucwords(str_replace('-', ' ', strtolower($nom))));
|
171 |
return $methode;
|
171 |
return $methode;
|
172 |
}
|
172 |
}
|
173 |
|
173 |
|
174 |
protected function traiterParametresUrl($params_attendu, $params, $pourBDD = true) {
|
174 |
protected function traiterParametresUrl($params_attendu, $params, $pourBDD = true) {
|
175 |
$sortie = array();
|
175 |
$sortie = array();
|
176 |
foreach ($params_attendu as $num => $nom) {
|
176 |
foreach ($params_attendu as $num => $nom) {
|
177 |
if (isset($params[$num]) && $params[$num] != '*') {
|
177 |
if (isset($params[$num]) && $params[$num] != '*') {
|
Line 192... |
Line 192... |
192 |
return $sortie;
|
192 |
return $sortie;
|
193 |
}
|
193 |
}
|
Line 194... |
Line 194... |
194 |
|
194 |
|
195 |
//+----------------------------------------------------------------------------------------------------------------+
|
195 |
//+----------------------------------------------------------------------------------------------------------------+
|
196 |
// GESTION DE L'IDENTIFICATION
|
196 |
// GESTION DE L'IDENTIFICATION
|
197 |
|
197 |
|
198 |
protected function getIdentification(&$params) {
|
198 |
protected function getIdentification(&$params) {
|
199 |
// Initialisation des variables
|
199 |
// Initialisation des variables
|
Line 200... |
Line 200... |
200 |
$utilisateur = array(0, session_id());
|
200 |
$utilisateur = array(0, session_id());
|
Line 232... |
Line 232... |
232 |
}
|
232 |
}
|
Line 233... |
Line 233... |
233 |
|
233 |
|
234 |
protected function getUtilisateur() {
|
234 |
protected function getUtilisateur() {
|
235 |
return (isset($_SESSION['coel_utilisateur']) ? $_SESSION['coel_utilisateur'] : '');
|
235 |
return (isset($_SESSION['coel_utilisateur']) ? $_SESSION['coel_utilisateur'] : '');
|
236 |
}
|
236 |
}
|
237 |
|
237 |
|
238 |
protected function authentifier() {
|
238 |
protected function authentifier() {
|
239 |
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
239 |
if (!isset($_SERVER['PHP_AUTH_USER'])) {
|
240 |
header('WWW-Authenticate: Basic realm="www.tela-botanica.org"');
|
240 |
header('WWW-Authenticate: Basic realm="www.tela-botanica.org"');
|
241 |
header('HTTP/1.0 401 Unauthorized');
|
241 |
header('HTTP/1.0 401 Unauthorized');
|
Line 259... |
Line 259... |
259 |
$query = 'SELECT '.$this->config['database_ident']['ann_id'].' AS name '.
|
259 |
$query = 'SELECT '.$this->config['database_ident']['ann_id'].' AS name '.
|
260 |
'FROM '.$this->config['database_ident']['database'].'.'.$this->config['database_ident']['annuaire'].' '.
|
260 |
'FROM '.$this->config['database_ident']['database'].'.'.$this->config['database_ident']['annuaire'].' '.
|
261 |
'WHERE '.$this->config['database_ident']['ann_id'].' = '.$this->bdd->quote($id).' '.
|
261 |
'WHERE '.$this->config['database_ident']['ann_id'].' = '.$this->bdd->quote($id).' '.
|
262 |
' AND '.$this->config['database_ident']['ann_pwd'].' = '.$this->config['database_ident']['pass_crypt_funct'].'('.$this->bdd->quote($_SERVER['PHP_AUTH_PW']).')' ;
|
262 |
' AND '.$this->config['database_ident']['ann_pwd'].' = '.$this->config['database_ident']['pass_crypt_funct'].'('.$this->bdd->quote($_SERVER['PHP_AUTH_PW']).')' ;
|
263 |
$res = $this->bdd->query($query);
|
263 |
$res = $this->bdd->query($query);
|
264 |
|
264 |
|
265 |
if ($res == '') {
|
265 |
if ($res == '') {
|
266 |
return false ;
|
266 |
return false ;
|
267 |
}
|
267 |
}
|
Line 268... |
Line 268... |
268 |
|
268 |
|
269 |
if (DB::isError($res)) {
|
269 |
if (DB::isError($res)) {
|
270 |
die($res->getMessage());
|
270 |
die($res->getMessage());
|
Line 271... |
Line 271... |
271 |
}
|
271 |
}
|
272 |
|
272 |
|
273 |
return true;
|
273 |
return true;
|
274 |
}
|
274 |
}
|
275 |
|
275 |
|
276 |
protected function estAutoriseMessagerie($adresse) {
|
276 |
protected function estAutoriseMessagerie($adresse) {
|
277 |
$utilisateurs_messagerie = explode(',', $this->config['messagerie']['utilisateurs_autorises']);
|
277 |
$utilisateurs_messagerie = explode(',', $this->config['messagerie']['utilisateurs_autorises']);
|
Line 278... |
Line 278... |
278 |
return in_array($adresse, $utilisateurs_messagerie);
|
278 |
return in_array($adresse, $utilisateurs_messagerie);
|
279 |
}
|
279 |
}
|
280 |
|
280 |
|
281 |
//+----------------------------------------------------------------------------------------------------------------+
|
281 |
//+----------------------------------------------------------------------------------------------------------------+
|
282 |
// GESTION DES SQUELETTES PHP
|
282 |
// GESTION DES SQUELETTES PHP
|
283 |
|
283 |
|
284 |
/**
|
284 |
/**
|
285 |
* Méthode prenant en paramètre un chemin de fichier squelette et un tableau associatif de données,
|
285 |
* Méthode prenant en paramètre un chemin de fichier squelette et un tableau associatif de données,
|