Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1634 Rev 1644
Line 39... Line 39...
39
		}
39
		}
Line 40... Line 40...
40
 
40
 
41
		return $ids;
41
		return $ids;
Line 42... Line 42...
42
	}
42
	}
43
 
43
 
Line 44... Line 44...
44
	public function rechercherObservations($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50, $are_we_safe = FALSE) {
44
	public function rechercherObservations($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50, $autoriser_sql_brut = FALSE) {
45
		$requete_selection_observations = 'SELECT * FROM cel_obs ';
45
		$requete_selection_observations = 'SELECT * FROM cel_obs ';
46
 
46
 
Line 51... Line 51...
51
		}
51
		}
Line 52... Line 52...
52
 
52
 
53
		// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
53
		// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
54
		// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
54
		// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
55
		// effectue $criteres = $_GET sans nettoyage préalable.
55
		// effectue $criteres = $_GET sans nettoyage préalable.
56
		if(isset($criteres['raw']) && ! $are_we_safe) unset($criteres['raw']);
56
		if(isset($criteres['sql_brut']) && !$autoriser_sql_brut) unset($criteres['sql_brut']);
Line 57... Line 57...
57
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
57
		$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres);
58
 
58
 
59
		$requete_selection_observations .= $sous_requete_recherche;
59
		$requete_selection_observations .= $sous_requete_recherche;
Line 244... Line 244...
244
					$sous_requete .= "( nom_sel LIKE ".$valeur_protegee." OR".
244
					$sous_requete .= "( nom_sel LIKE ".$valeur_protegee." OR".
245
								" nom_ret LIKE ".$valeur_protegee." OR".
245
								" nom_ret LIKE ".$valeur_protegee." OR".
246
								" famille LIKE ".$valeur_protegee.
246
								" famille LIKE ".$valeur_protegee.
247
								" ) AND ";
247
								" ) AND ";
248
					break;
248
					break;
249
				case 'raw':
249
				case 'sql_brut':
250
					$sous_requete .= $valeur;
250
					$sous_requete .= $valeur;
251
					$sous_requete .= ' AND ';
251
					$sous_requete .= ' AND ';
252
					break;
252
					break;
253
				default:
253
				default:
254
					if (trim($nom) != '') {
254
					if (trim($nom) != '') {