Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 164 lines (139 sloc) 6.915 kb
5e7fbd1 Import initial sur le SVN
tbelliard authored
1 <?php
2 @set_time_limit(0);
3 /*
f1bc821 Ajout du vidage des tables matieres_appreciations_grp et matieres_apprec...
crob authored
4 * $Id$
5e7fbd1 Import initial sur le SVN
tbelliard authored
5 *
6 * Copyright 2001, 2005 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun
7 *
8 * This file is part of GEPI.
9 *
10 * GEPI is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * GEPI is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with GEPI; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24
25
26 // Initialisations files
27 require_once("../lib/initialisations.inc.php");
28 extract($_POST, EXTR_OVERWRITE);
29
30
31 // Resume session
8857c50 Application des modifications sur la gestion des sessions. (remplacement...
tbelliard authored
32 $resultat_session = $session_gepi->security_check();
5e7fbd1 Import initial sur le SVN
tbelliard authored
33 if ($resultat_session == 'c') {
34 header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes");
35 die();
36 } else if ($resultat_session == '0') {
37 header("Location: ../logout.php?auto=1");
38 die();
39 };
40
41
42 if (!checkAccess()) {
43 header("Location: ../logout.php?auto=1");
44 die();
45 }
94d7ed6 Désactivation de ces modes d'initialisation.
crob authored
46
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
47 // Page bourrinée... la gestion du token n'est pas faite... et ne sera faite que si quelqu'un utilise encore ce mode d'initialisation et le manifeste sur la liste de diffusion gepi-users
94d7ed6 Désactivation de ces modes d'initialisation.
crob authored
48 check_token();
49
5e7fbd1 Import initial sur le SVN
tbelliard authored
50 //**************** EN-TETE *****************
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
51 $titre_page = "Outil d'initialisation de l'année : Importation des élèves - Etape 1";
5e7fbd1 Import initial sur le SVN
tbelliard authored
52 require_once("../lib/header.inc");
53 //**************** FIN EN-TETE *****************
54 ?>
55 <p class=bold>|<a href="index.php">Retour accueil initialisation</a>|</p>
56 <?php
57
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
58 // On vérifie si l'extension d_base est active
5e7fbd1 Import initial sur le SVN
tbelliard authored
59 verif_active_dbase();
60
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
61 echo "<center><h3 class='gepi'>Première phase d'initialisation<br />Importation des élèves, constitution des classes et affectation des élèves dans les classes</h3></center>";
5e7fbd1 Import initial sur le SVN
tbelliard authored
62
63
64 if (!isset($is_posted)) {
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
65 echo "<p>Vous allez effectuer la première étape : elle consiste à importer le fichier <b>F_ELE.DBF</b> contenant toutes les données dans une table temporaire de la base de données de <b>GEPI</b>.";
66 echo "<p>Veuillez préciser le nom complet du fichier <b>F_ELE.DBF</b>.";
5e7fbd1 Import initial sur le SVN
tbelliard authored
67 echo "<form enctype='multipart/form-data' action='step1.php' method=post>";
68 echo "<input type=hidden name='is_posted' value='yes'>";
69 echo "<p><input type=\"file\" size=\"80\" name=\"dbf_file\">";
70 echo "<p><input type=submit value='Valider'>";
71 echo "</form>";
72
73 } else {
74 $dbf_file = isset($_FILES["dbf_file"]) ? $_FILES["dbf_file"] : NULL;
35ad5d6 @Regis85 strtoupper vers mb_strtoupper mais il en reste à corriger
Regis85 authored
75 if(mb_strtoupper($dbf_file['name']) == "F_ELE.DBF") {
5e7fbd1 Import initial sur le SVN
tbelliard authored
76 $fp = dbase_open($dbf_file['tmp_name'], 0);
77
78 if(!$fp) {
79 echo "<p>Impossible d'ouvrir le fichier dbf !</p>";
80 echo "<p><a href='step1.php'>Cliquer ici </a> pour recommencer !</center></p>";
81 } else {
82 $del = @mysql_query("DELETE FROM temp_gep_import");
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
83 // on constitue le tableau des champs à extraire
5e7fbd1 Import initial sur le SVN
tbelliard authored
84 $tabchamps = array("ELENOM","ELEPRE","ELESEXE","ELEDATNAIS","ELENOET","ERENO","ELEDOUBL","ELENONAT","ELEREG","DIVCOD","ETOCOD_EP", "ELEOPT1", "ELEOPT2", "ELEOPT3", "ELEOPT4", "ELEOPT5", "ELEOPT6", "ELEOPT7", "ELEOPT8", "ELEOPT9", "ELEOPT10", "ELEOPT11", "ELEOPT12");
85
86 $nblignes = dbase_numrecords($fp); //number of rows
87 $nbchamps = dbase_numfields($fp); //number of fields
88
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
89 // On range dans un tableau les en-têtes des champs
5e7fbd1 Import initial sur le SVN
tbelliard authored
90 if (@dbase_get_record_with_names($fp,1)) {
91 $temp = @dbase_get_record_with_names($fp,1);
92 } else {
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
93 echo "<p>Le fichier sélectionné n'est pas valide !<br />";
5e7fbd1 Import initial sur le SVN
tbelliard authored
94 echo "<a href='step1.php'>Cliquer ici </a> pour recommencer !</center></p>";
95 die();
96 }
97
98 $nb = 0;
99 foreach($temp as $key => $val){
100 $en_tete[$nb] = "$key";
101 $nb++;
102 }
103
104 // On range dans tabindice les indices des champs retenus
105 for ($k = 0; $k < count($tabchamps); $k++) {
106 for ($i = 0; $i < count($en_tete); $i++) {
107 if ($en_tete[$i] == $tabchamps[$k]) {
108 $tabindice[] = $i;
109 }
110 }
111 }
112
113 $nb_reg_ok = 0;
114 $nb_reg_no = 0;
115 for($k = 1; ($k < $nblignes+1); $k++){
116 $enregistre = "yes";
117 $ligne = dbase_get_record($fp,$k);
118 $query = "INSERT INTO temp_gep_import VALUES ('$k',''";
119 for($i = 0; $i < count($tabchamps); $i++) {
120 $query = $query.",";
121
122 $ind = $tabindice[$i];
123 $affiche = dbase_filter(trim($ligne[$ind]));
124 $query = $query."\"".$affiche."\"";
125 if (($en_tete[$ind] == 'DIVCOD') and ($affiche == '')) {$enregistre = "no";}
126 }
127 $query = $query.")";
128 if ($enregistre == "yes") {
129 $register = mysql_query($query);
130 if (!$register) {
131 echo "<p class=\"small\"><font color='red'>Analyse de la ligne $k : erreur lors de l'enregistrement !</font></p>";
132 $nb_reg_no++;
133 } else {
134 $nb_reg_ok++;
135 // echo ".";
136 }
137 } else {
138 // echo ".";
139 }
140 }
141
142 dbase_close($fp);
143 if ($nb_reg_no != 0) {
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
144 echo "<p>Lors de l'enregistrement des données il y a eu $nb_reg_no erreurs, vous ne pouvez pas procéder à la suite de l'initialisation. Trouvez la cause de l'erreur et recommencez la procédure, après avoir vidé la table temporaire.";
5e7fbd1 Import initial sur le SVN
tbelliard authored
145 } else {
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
146 echo "<p>Les $nblignes lignes du fichier F_ELE.DBF ont été analysées.<br />$nb_reg_ok lignes de données correspondant à des élèves de l'année en cours ont été enregistrées dans une table temporaire.<br />Il n'y a pas eu d'erreurs, vous pouvez procéder à l'étape suivante.</p>";
147 echo "<center><p><a href='step2.php'>Accéder à l'étape 2</a></p></center>";
5e7fbd1 Import initial sur le SVN
tbelliard authored
148 }
149 }
150 } else if (trim($dbf_file['name'])=='') {
151
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
152 echo "<p>Aucun fichier n'a été sélectionné !<br />";
5e7fbd1 Import initial sur le SVN
tbelliard authored
153 echo "<a href='step1.php'>Cliquer ici </a> pour recommencer !</center></p>";
154
155 } else {
d2a0e2f @Regis85 Réencodage en UTF-8 des fichiers
Regis85 authored
156 echo "<p>Le fichier sélectionné n'est pas valide !<br />";
5e7fbd1 Import initial sur le SVN
tbelliard authored
157 echo "<a href='step1.php'>Cliquer ici </a> pour recommencer !</center></p>";
158 }
159 }
160
68ffa7c Corrections de validité HTML sur /initialisation/
crob authored
161 echo "<p><br /></p>\n";
162 require("../lib/footer.inc.php");
5e7fbd1 Import initial sur le SVN
tbelliard authored
163 ?>
Something went wrong with that request. Please try again.