Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1631 Rev 1634
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) {
44
	public function rechercherObservations($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50, $are_we_safe = FALSE) {
45
		$requete_selection_observations = 'SELECT * FROM cel_obs ';
45
		$requete_selection_observations = 'SELECT * FROM cel_obs ';
46
 
46
 
47
		if ($id_utilisateur != null) {
47
		if ($id_utilisateur != null) {
48
			$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
48
			$requete_selection_observations .= 'WHERE ce_utilisateur = '.$this->proteger($id_utilisateur).' AND ';
Line -... Line 49...
-
 
49
		} else if(count($criteres) > 0) {
-
 
50
			$requete_selection_observations .= 'WHERE ';
-
 
51
		}
-
 
52
 
49
		} else if(count($criteres) > 0) {
53
		// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API
Line 50... Line 54...
50
			$requete_selection_observations .= 'WHERE ';
54
		// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui
51
		}
55
		// effectue $criteres = $_GET sans nettoyage préalable.
52
 
56
		if(isset($criteres['raw']) && ! $are_we_safe) unset($criteres['raw']);
Line 240... Line 244...
240
					$sous_requete .= "( nom_sel LIKE ".$valeur_protegee." OR".
244
					$sous_requete .= "( nom_sel LIKE ".$valeur_protegee." OR".
241
								" nom_ret LIKE ".$valeur_protegee." OR".
245
								" nom_ret LIKE ".$valeur_protegee." OR".
242
								" famille LIKE ".$valeur_protegee.
246
								" famille LIKE ".$valeur_protegee.
243
								" ) AND ";
247
								" ) AND ";
244
					break;
248
					break;
-
 
249
				case 'raw':
-
 
250
					$sous_requete .= $valeur;
-
 
251
					$sous_requete .= ' AND ';
-
 
252
					break;
245
				default:
253
				default:
246
					if (trim($nom) != '') {
254
					if (trim($nom) != '') {
247
						$sous_requete .= $nom." = ".$this->proteger($valeur) ;
255
						$sous_requete .= $nom." = ".$this->proteger($valeur) ;
248
						$sous_requete .= ' AND ';
256
						$sous_requete .= ' AND ';
249
					}
257
					}