security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } //**************** EN-TETE ***************** $titre_page = "Etablissements | Importation d'un fichier csv"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // $long_max : doit être plus grand que la plus grande ligne trouvée dans le fichier CSV $long_max = 8000; echo "

Retour Retour\n";; if (!isset($is_posted)) { echo "

Première phase d'importation des établissements

\n"; echo "
\n"; echo "

Choisir un fichier csv parmi ceux disponibles actuellement dans la distribution GEPI :
\n"; echo "

\n"; echo add_token_field(); $handle=opendir('./bases'); echo "\n"; closedir($handle); echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo "


\n"; /* echo "

Choisir un autre fichier de votre choix :

\n"; */ echo "

Choisir un autre fichier de votre choix :
\n"; echo add_token_field(); $csv_file = ""; echo "\n"; echo "\n"; ?>

Le fichier d'importation peut-être constitué à l'aide d'un tableur à partir des informations contenues dans le fichier \"NMETABC.TXT\" qui se trouve dans GEP."; echo "
Il doit être au format csv (séparateur : point-virgule) et doit contenir les six champs suivants :
\n"; echo "--> Le N° RNE de l'établissement
\n"; echo "--> Le nom de l'établissement
\n"; echo "--> Le type :\n\nSeules ces possibilités sont autorisées (attention à respecter la casse).

\n"; echo "--> Le type \"public\" ou \"prive\". Seules ces deux possibilités sont autorisées.
\n"; echo "--> Le code postal de la ville.
\n"; echo "--> La ville.\n"; } else if (isset($is_posted ) and ($is_posted==1 )) { check_token(false); echo "

Deuxième phase d'importation des établissements

\n"; $table_etab=array(); if ($_POST['choix'] == 'gepi') { $fp = @fopen("./bases/".$_POST['csv_file'], "r"); } else { $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; if($csv_file['tmp_name'] == "") { echo "

Aucun fichier n'a été sélectionné !

\n"; require("../lib/footer.inc.php"); die(); } $fp = @fopen($csv_file['tmp_name'], "r"); } echo "
\n"; echo "

Attention, les données ne sont pas encore enregistrées dans la base GEPI. Vous devez confirmer l'importation (bouton en bas de la page) !

\n"; if(!$fp) { echo "Impossible d'ouvrir le fichier CSV"; } else { // Nombre total de lignes lues $row = 0; // Nombre total de lignes insérées dans la base $ind = 0; echo "\n"; $alt=1; while(!feof($fp)) { if (isset($en_tete)) { $data = fgetcsv ($fp, $long_max, ";"); unset($en_tete); } else{ $alt=$alt*(-1); } $data = fgetcsv ($fp, $long_max, ";"); $num = count ($data); if ($num == 6) { $reg_rne = ''; $reg_nom = ''; $reg_type2 = ''; $reg_type1 = ''; $reg_cp = ''; $reg_ville = ''; $row++; echo "\n"; for ($c=0; $c<$num; $c++) { switch ($c) { case 0: //RNE $call_rne = mysqli_query($GLOBALS["mysqli"], "SELECT * FROM etablissements WHERE id='$data[$c]'"); $test = @mysqli_num_rows($call_rne); $couleur = 'black'; if ($test != 0) { $couleur = 'red'; $reg_ligne='no'; } //echo "\n"; echo "\n"; $reg_rne=$data[$c]; break; case 1: // Nom if ($data[$c] == "") { $col = "Non défini\n"; $reg_ligne='no'; } else { $reg_nom = traitement_magic_quotes(corriger_caracteres($data[$c])); $col = $data[$c]; } echo "\n"; break; case 2: // Type lycée/collège $tempo = $data[$c]; $valid='no'; foreach ($type_etablissement as $type_etabli => $nom_etablissement) { if ($tempo == $type_etabli) { $tempo = $nom_etablissement; $reg_type1 = $type_etabli; $valid='yes'; } } if ($valid=='yes') { echo "\n"; } else { echo "\n"; $reg_ligne='no'; } break; case 3: // Type public/privé $tempo = my_strtolower($data[$c]); $valid='yes'; switch($tempo) { case "public": $reg_type2 = "public"; break; case "prive": $reg_type2 = "prive"; break; $valid = 'no'; } if ($valid=='yes') { echo "\n"; } else { echo "\n"; $reg_ligne='no'; } break; case 4: // Code postal if (preg_match ("/^[0-9]{1,5}$/", $data[$c])) { echo "\n"; $reg_cp=$data[$c]; } else { echo "\n"; $reg_ligne='no'; } break; case 5: // Ville if ($data[$c] == "") { $col = "Non défini\n"; $reg_ligne='no'; $reg_ville = ''; } else { $col = $data[$c]; $reg_ville = traitement_magic_quotes(corriger_caracteres($data[$c])) ; } echo "\n"; break; } } if (isset($reg_ligne)) { unset($reg_ligne); } else { $table_etab[$ind][] = $reg_rne; $table_etab[$ind][] = $reg_nom; $table_etab[$ind][] = $reg_type1; $table_etab[$ind][] = $reg_type2; $table_etab[$ind][] = $reg_cp; $table_etab[$ind][] = $reg_ville; $ind++; } } // fin de la boucle "while(!feof($fp))" } fclose($fp); echo "

N° RNE

Nom de l'établissement

Type lycée/collège/école/...

Type public/privé

Code postal

Ville

".$data[$c]."

".$data[$c]."

$col

$tempo

Non défini

$tempo

Non défini

$data[$c]

Non défini$col
\n"; echo "

Première phase de l'importation : $row entrées détectées !

\n"; if ($row > 0) { $table_etab=serialize($table_etab); $_SESSION['table_etab']=$table_etab; echo "

AVERTISSEMENT :

\n"; if ($ind != 0) { if ($ind == 1) { echo "

".$ind." ligne est prête à être enregistrée.

\n"; } else{ echo "

".$ind." lignes sont prêtes à être enregistrées.

\n"; } echo "
\n"; echo "\n"; } else { echo "

Il n'y a aucun établissement à entrer dans la base.

\n"; } echo add_token_field(); echo "\n"; } else { echo "

L'importation a échoué !

\n"; } } } else { echo "

Troisième phase d'importation des établissements

\n"; if (!isset($_SESSION['table_etab'])) { echo "

Opération non conforme.

\n"; die(); } check_token(false); $table_etab=unserialize($_SESSION['table_etab']); $pb = 'no'; for ($c=0; $cIl y a eu un ou plusieurs problèmes lors de l'enregistrement. Les lignes en rouge indiquent les enregistrements défectueux.

\n"; } else { echo "

".count ($table_etab)." établissements ont été insérés avec succès dans la base.

\n"; } echo "\n"; $alt=1; for ($c=0; $c\n"; } else{ echo "\n"; } for ($j=0; $j".StripSlashes($table_etab[$c][$j])."\n"; } echo "\n"; } echo "
\n"; unset($_SESSION['table_etab']); } echo "


\n"; require("../lib/footer.inc.php"); ?>