/trunk/jrest/services/ExportXLS.php |
---|
32,6 → 32,10 |
* |
*/ |
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib'); |
// TERM |
ini_set('html_errors', 0); |
ini_set('xdebug.cli_color', 2); |
require_once('lib/PHPExcel/Classes/PHPExcel.php'); |
// si getNomCommun_v2 ou getNomCommun_v3 sont utilisés |
/*require_once('/home/raphael/eflore/framework/framework/Framework.php'); |
101,7 → 105,7 |
$criteres['debut'] = isset($_GET['debut']) ? intval($_GET['debut']) : 0; |
$criteres['limite'] = isset($_GET['limite']) ? intval($_GET['limite']) : 0; |
$observations = $chercheur_observations |
->rechercherObservations($params['uid'], $criteres, $criteres['debut'], $criteres['limite']) |
->rechercherObservations($params['uid'], $criteres, $criteres['debut'], $criteres['limite'], TRUE) |
->get(); |
// debug //echo ($chercheur_observations->requete_selection_observations); |
194,6 → 198,8 |
foreach($inSets as $inSet) { |
list($start,$end) = explode('-', $inSet . '-' . $inSet); |
// ignore les ranges trop importants |
if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue; |
$outSets = array_merge($outSets,range($start,$end)); |
} |
$outSets = array_unique($outSets); |
/trunk/jrest/lib/RechercheObservation.php |
---|
41,7 → 41,7 |
return $ids; |
} |
public function rechercherObservations($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50) { |
public function rechercherObservations($id_utilisateur = null, $criteres = array(), $debut = 0, $limite = 50, $are_we_safe = FALSE) { |
$requete_selection_observations = 'SELECT * FROM cel_obs '; |
if ($id_utilisateur != null) { |
50,6 → 50,10 |
$requete_selection_observations .= 'WHERE '; |
} |
// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API |
// et sans pour autant introduire de problème de sécurité majeur dans toutes les fonctions appelantes qui |
// effectue $criteres = $_GET sans nettoyage préalable. |
if(isset($criteres['raw']) && ! $are_we_safe) unset($criteres['raw']); |
$sous_requete_recherche = $this->fabriquerSousRequeteRecherche($id_utilisateur, $criteres); |
$requete_selection_observations .= $sous_requete_recherche; |
242,6 → 246,10 |
" famille LIKE ".$valeur_protegee. |
" ) AND "; |
break; |
case 'raw': |
$sous_requete .= $valeur; |
$sous_requete .= ' AND '; |
break; |
default: |
if (trim($nom) != '') { |
$sous_requete .= $nom." = ".$this->proteger($valeur) ; |