<?phpsession_start();$_FONCTIONS_DIR_ = dirname(__FILE__)."/fonctions/";include("./define.php");include$_FONCTIONS_DIR_."postgis.class.php";include($_FONCTIONS_DIR_."auth.class.php");include($_FONCTIONS_DIR_."general.php");include($_FONCTIONS_DIR_."geofile.class.php");include($_FONCTIONS_DIR_."IniConfig.class.php");$etat_db=1;$PGConf=PGGetConf();$Connexion = new postgis($PGConf[0],$PGConf[1],$PGConf[2],$PGConf[3],$PGConf[4]);$Connexion->connect($Connexion->dbname);$auth = new Auth($_POST["login"],$_POST["pwd"]);//if ($_COOKIE['PHPSESSID'])//{//}?><html><body><?php/* On récupère le mot de passe Si le login fournit n'existe pas ( alors le mot de passe attendu est ERROR) ou si le login existe mais que le mot de passe fourni n'est pas le bon alors on recommence à nouveau... */$Connexion->exec("SELECT appli.GetPassword('users','".$auth->getValue("appli_user")."')");$Connexion->setRow(-1);$Connexion->nextRow();$rs=$Connexion->fobject();if ( ($rs->getpassword == _POSTGRESQL_ERROR_) || ($rs->getpassword <> $auth->getValue("appli_mdp")) ){ include("session_failed.php");}else{ /* Les login et mot de passe sont exacts, on récupère donc les paramètres samba pour le réseau */ $Connexion->exec("SELECT * FROM appli.GetRezoParametersFromUserLogin('".$auth->getValue("appli_user")."')"); $Connexion->setRow(-1);$Connexion->nextRow();$rs=$Connexion->fobject(); /* Complétion de l'authentification */ $auth->setValue("rezo_user",$rs->login); $auth->setValue("rezo_mdp",$rs->password); $auth->setValue("rezo_path",$rs->path); $auth->setValue("rezo_schema",$rs->schema); /* Sauvegarde dans la session du schema */ //if(!session_is_registered("rezo_schema")) //{ $_SESSION['rezo_schema'] = $auth->getValue("rezo_schema"); //} /* */ $Connexion->exec("SELECT * FROM appli.GetInfoFromThisRezoSchemaPath('".$auth->getValue("rezo_schema")."')"); $Virtual_nom_fichier = array(); $Virtual_nom_table = array(); $Virtual_date_de_derniere_importation = array(); $Connexion->setRow(-1); if ($Connexion->numRows()==0) { $Virtual_nom_fichier[] = 'JLKJL9090'; $Virtual_nom_table[] = 'JLKJL9090'; $Virtual_date_de_derniere_importation[] = 'JLKJL9090'; } else { while($Connexion->nextRow()) { $rs=$Connexion->fobject(); $Virtual_nom_fichier[] = $rs->nom_fichier; $Virtual_nom_table[] = $rs->nom_table; $Virtual_date_de_derniere_importation[] = $rs->date_de_derniere_importation; } } /* Si on arrive jusqu'ici alors 1) Connexion à l'appli = OK 2) Connexion au réseau = OK Donc plusieurs précautions sont à prendre: 1) le répertoire en question existe? 2) le répertoire est-il vide? 3) y'a des fichiers GeoSpatiale avec les fichiers auxilaires voulus? Si on passe tous ces tests alors on affiche le tableau si le tableau est vide par défaut on propose le nom du fichier (filtré comme il faut) comme nom de table associée si un fichier géospatiale est nouveau (donc il n'est pas encore référencé */ $obj_rezo = new GeoDataRep($auth->getValue("rezo_path"));echo $auth->getValue("rezo_path"); $obj_rezo->ListEveryIn(); if ( $obj_rezo->IsValidGeoDataRep()==_IS_A_VALID_DIR_ )// on vérifie que le répertoire existe! {//Début validation 1: Oui le répertoire existe if ( $obj_rezo->IsAEmptyRep()==_IS_A_EMPTY_DIR )// le répertoire n'est pas vide! {//Début validation 2: Non le répertoire n'est pas vide! if ( $obj_rezo->ThereIsGeoSpatialesFiles() ) {//Erreur validation 3 for($iter=0;$iter<$obj_rezo->CountEvery();$iter++) { $TestOnFile = $obj_rezo->IsAValidGisFile($iter); if ($TestOnFile[0]==true) {$GoodFiles++;} }?><script language="JavaScript"><?php define("GEN_ID","wid_");?>var Nb_Tables = <?php echo $GoodFiles;?>;function ChangerStatusTableChoisie(iter){ if (document.getElementById('<?php echo GEN_ID;?>'+iter+'_check').checked==false) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_effacer_table_oui_ou_non').value='0'; } else { document.getElementById('<?php echo GEN_ID;?>'+iter+'_effacer_table_oui_ou_non').value='1'; }}function CheckAllOn(){ for(var iter=0;iter<Nb_Tables;iter++) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_check').checked=true; } document.getElementById('CheckOffW').checked=false; document.getElementById('CheckOnW').checked=true;}function CheckAllOff(){ for(var iter=0;iter<Nb_Tables;iter++) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_check').checked=false; //alert(iter); } document.getElementById('CheckOnW').checked=false; document.getElementById('CheckOffW').checked=true;}function SelectAllOnLambertDeux(){ for(var iter=0;iter<Nb_Tables;iter++) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_srid').selectedIndex=1; } document.getElementById('SelectAllOffProjW').checked=false;}function SelectAllOnLambertTrois(){ for(var iter=0;iter<Nb_Tables;iter++) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_srid').selectedIndex=2; } document.getElementById('SelectAllOffProjW').checked=false; document.getElementById('SelectAllOnLambertDeuxW').checked=false;}function SelectAllOffProj(){ for(var iter=0;iter<Nb_Tables;iter++) { document.getElementById('<?php echo GEN_ID;?>'+iter+'_srid').selectedIndex=0; } document.getElementById('SelectAllOnLambertDeuxW').checked=false;}</script><FIELDSET align="left" style="width:600px;font-size:12px;font-family:Arial"> <LEGEND><b> Options</b></LEGEND> <INPUT type='checkbox' name='CheckOnW' id='CheckOnW' OnClick='CheckAllOn();' />Cocher <INPUT type='checkbox' name='SelectAllOnLambertDeuxW' id='SelectAllOnLambertDeuxW' OnClick='SelectAllOnLambertDeux();' />Mettre en Lambert II Etendu <INPUT type='checkbox' name='SelectAllOnLambertDeuxW' id='SelectAllOnLambertTroisW' OnClick='SelectAllOnLambertTrois();' />Mettre en Lambert III <br/> <INPUT type='checkbox' name='CheckOffW' id='CheckOffW' OnClick='CheckAllOff();'/>Décocher <INPUT type='checkbox' name='SelectAllOffProjW' id='SelectAllOffProjW' OnClick='SelectAllOffProj();' />Mettre sans système de projection</FIELDSET><?php echo "<form method='post' action='import.php'>\n"; echo "<TABLE BORDER='2' style='font-size:11px' width='90%'>\n"; echo "\t<tr>\n"; echo "\t\t<th>\nValidation\t\t</th>\n"; echo "\t\t<th>\nChoix\t\t</th>\n"; echo "\t\t<th>\nN°\t\t</th>\n"; echo "\t\t<th>\nType\t\t</th>\n"; echo "\t\t<th>\nNom du fichier\t\t</th>\n"; echo "\t\t<th>\nNom de la table\t\t</th>\n"; echo "\t\t<th>\nProjection\t\t</th>\n"; echo "\t</tr>\n"; $iter=0;// indice pour les bons fichiers $itertest=0;// indice de test pour les fichiers $Maxiter = $obj_rezo->CountEvery(); while($itertest<$obj_rezo->CountEvery()) { // // Il faut vérifier si le fichier en question est présent avec les divers autres // fichiers attendus. Exemple pour shapefile: il faut les fichiers shx et dbf // // Pour chaque fichier (.shp ou .tab), on doit commencer par déterminer // le type afin de pouvoir afficher l'icône correspondant // $TestOnFile = $obj_rezo->IsAValidGisFile($itertest); // $TestOnFile[0]=> renvoit true ou false s'il y a une erreur ou pas // $TestOnFile[1] => Erreur trouvée! // $nom_table_en_cours = $obj_rezo->Filter($itertest); // // On vérifie ici le fichier est déjà référencé dans la table t_fichier_src // Si oui, si on la choisit il faut pouvoir l'effacer // if (in_array($nom_table_en_cours,$Virtual_nom_table)) {// oui c'est une table qui est déjà référencée! $color_tr = "#e7dfce"; $input_drop_table = "1"; $input_drop_table_name = $nom_table_en_cours; $effet_javascript_for_check = "onclick=\"ChangerStatusTableChoisie('".$iter."')\""; $input_type_hidden_drop_table = "<INPUT TYPE='HIDDEN' NAME='".GEN_ID."".$iter."_nom_table_a_effacer' ID='".GEN_ID."".$iter."_nom_table_a_effacer' VALUE='".$nom_table_en_cours."'/> \n<INPUT TYPE='HIDDEN' NAME='".GEN_ID."".$iter."_effacer_table_oui_ou_non' ID='".GEN_ID."".$iter."_effacer_table_oui_ou_non' VALUE='".$input_drop_table."'/>"; } else {// non cette table n'a pas encore été référencée, elle est nouvelle! $color_tr = "#ee6500"; $input_drop_table = "0"; $input_drop_table_name = " "; $effet_javascript_for_check = " "; $input_type_hidden_drop_table = " "; } echo "<TR bgcolor='".$color_tr."'>\n"; $icon_type = ((($obj_rezo->GetExtensionType($itertest)== "SHP")||($obj_rezo->GetExtensionType($itertest)== "shp"))? "shapefile.png":"mapinfo.png"); if ($TestOnFile[0]==false) { echo "<TD><img src='./img/delete.png' /></TD>\n"; echo "<TD><b>ERREUR:</b> "; echo "<ol>"; for($ItError=0;$ItError<count($TestOnFile[1]);$ItError++) {echo "</li>".utf8_decode($TestOnFile[1][$ItError])."</li>";} echo "</ol>"; echo "</TD>"; $nom_table = "XXX"; $olditer = $iter; $iter = "XXX"; } else { echo "<TD><img src='./img/ok.png' /></TD>\n"; echo "<TD><INPUT TYPE='checkbox' ".$effet_javascript_for_check." id='".GEN_ID."".$iter."_check' name='".GEN_ID."".$iter."_check' checked='checked' value='".$iter."'/></TD>\n"; } echo "<TD>".$iter."</TD> <TD><img src='./icons/".$icon_type."' width='30' height='20'/></TD>\n<TD> <INPUT TYPE='HIDDEN' NAME='".GEN_ID."".$iter."_pathfile' value='".$obj_rezo->GetPathFile($itertest)."'/> <INPUT TYPE='HIDDEN' NAME='".GEN_ID."".$iter."_name_normal' VALUE='".$obj_rezo->GetFileNameWithOutExt($itertest)."'/> <INPUT TYPE='HIDDEN' NAME='".GEN_ID."".$iter."_ext' VALUE='".$obj_rezo->GetExtensionType($itertest)."'/> ".$input_type_hidden_drop_table." ".$obj_rezo->GetFileNameWithOutExt($itertest)." \n </TD>"; if ($TestOnFile[0]==true) { echo "<TD>\n";/* if ($etat_db==0) { echo ">><INPUT TYPE='checkbox' onclick=\"CheckOffMajtable('".$iter."')\" id='".GEN_ID."".$iter."_etat_new_table' name='".GEN_ID."".$iter."_new_table' checked='checked' value='".$iter."'/>\n <u>Nouvelle table</u>"; }*/ echo "<INPUT style='visibility:visible' TYPE='TEXT' id='".GEN_ID."".$iter."_name_converti' name='".GEN_ID."".$iter."_name_converti' size='".intval(strlen($obj_rezo->Filter($itertest))+10)."' VALUE='".$nom_table_en_cours."'/>\n\n"; /* if ($etat_db==0) { echo "<br>>><INPUT TYPE='checkbox' onclick=\"CheckOnMajtable('".$iter."')\" id='".GEN_ID."".$iter."_etat_maj_table' name='".GEN_ID."".$iter."_maj_table' value='".$iter."'/> <u>".utf8_decode("Mise à jour d'une table")."</u>"; echo "<div id='".GEN_ID."".$iter."_etat_div_replace_table' name='".GEN_ID."".$iter."_etat_div_replace_table' style='visibility:hidden'>\n"; echo "<select id='".GEN_ID."".$iter."_etat_liste_replace_table' name='".GEN_ID."".$iter."_etat_liste_replace_table' >\n"; echo "</select>\n</div>\n"; }*/ echo "</TD>\n <TD><SELECT id='".GEN_ID."".$iter."_srid' name='".GEN_ID."".$iter."_srid'><OPTION value='-1'>Pas de projection</OPTION> <OPTION value='27582'>Lambert II Etendu (SRID=27582)</OPTION> <OPTION value='27583'>Lambert III (SRID=27583)</OPTION> </SELECT></TD>\n"; } else { echo "<td>XXX</td><td>XXX</td><\n"; } echo "</TR>"; if ($TestOnFile[0]==false) { $iter = $olditer;$iter; } else{$iter++;} $itertest++; } echo "</TABLE>\n<INPUT TYPE='SUBMIT' VALUE='IMPORTER LES FICHIERS'/></FORM>"; }//Erreur validation else {//Début validation 3 echo "Le répertoire n'est pas vide! Mais aucun fichier géospatiale n'a été trouvé, du type ESRI Shapfile (.shp), MapInfo (.map,mif/mid)"; exit(""); }// Fin validation 3 }// Fin Validation 2 else {//Erreur sur validation 2: Oui le répertoire est vide echo "le répertoire en question existe mais est vide!"; exit(""); }//Erreur sur validation 2 }// Fin Validation 1 else // le path spécifié n'existe pas! {//Erreur sur validation 1: Non le répertoire n'existe pas! echo "le répertoire attendu n'existe pas!"; exit(""); }//Erreur sur validation 1}// Fin du Script général!?></body></html>