Line 65... |
Line 65... |
65 |
$requete_selection_observations .= 'WHERE ce_utilisateur = '.Cel::db()->proteger($id_utilisateur).' AND ';
|
65 |
$requete_selection_observations .= 'WHERE ce_utilisateur = '.Cel::db()->proteger($id_utilisateur).' AND ';
|
66 |
} else if(count($criteres) > 0) {
|
66 |
} else if(count($criteres) > 0) {
|
67 |
$requete_selection_observations .= 'WHERE ';
|
67 |
$requete_selection_observations .= 'WHERE ';
|
68 |
}
|
68 |
}
|
Line -... |
Line 69... |
- |
|
69 |
|
- |
|
70 |
// construction du tri
|
69 |
|
71 |
$order_by_clause = '';
|
- |
|
72 |
if (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) {
|
- |
|
73 |
$order_by_clause = ' ORDER BY ' . $criteres['tri'];
|
- |
|
74 |
|
- |
|
75 |
if (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) {
|
- |
|
76 |
$order_by_clause .= ' ' . $criteres['tri_dir'];
|
- |
|
77 |
}
|
70 |
$tri = (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) ? $criteres['tri'] : 'ordre';
|
78 |
}
|
71 |
unset($criteres['tri']);
|
- |
|
72 |
$tri_dir = (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) ? $criteres['tri_dir'] : 'ASC';
|
79 |
unset($criteres['tri']);
|
Line 73... |
Line 80... |
73 |
unset($criteres['tri_dir']);
|
80 |
unset($criteres['tri_dir']);
|
74 |
|
81 |
|
75 |
// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
|
82 |
// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
|
76 |
// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
|
83 |
// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
|
77 |
// effectue $criteres = $_GET sans nettoyage préalable.
|
84 |
// effectue $criteres = $_GET sans nettoyage préalable.
|
Line 78... |
Line 85... |
78 |
if(isset($criteres['sql_brut']) && !$autoriser_sql_brut) unset($criteres['sql_brut']);
|
85 |
if(isset($criteres['sql_brut']) && !$autoriser_sql_brut) unset($criteres['sql_brut']);
|
79 |
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
|
86 |
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
|
80 |
|
87 |
|
81 |
$requete_selection_observations .= $sous_requete_recherche;
|
88 |
$requete_selection_observations .= $sous_requete_recherche;
|
Line 82... |
Line 89... |
82 |
$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
|
89 |
$requete_selection_observations = rtrim($requete_selection_observations, 'AND ');
|
83 |
$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : ' ORDER BY '.$tri.' '.$tri_dir;
|
90 |
$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : $order_by_clause;
|
84 |
$requete_selection_observations .= ($debut == 0 && $limite == 0) ? '' : ' LIMIT '.$debut.','.$limite ;
|
91 |
$requete_selection_observations .= ($debut == 0 && $limite == 0) ? '' : ' LIMIT '.$debut.','.$limite ;
|