[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Page d'import des comptes depuis les fichiers CSV/XML de Sconet 7 * @Version $Id: import_sconet.php 8600 2015-03-16 20:12:30Z plouf $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs Stephane Boireau (Animateur de Secteur pour les TICE sur Bernay/Pont-Audemer (27)) 12 * @auteurs jLCF jean-luc.chretien@tice.ac-caen.fr Portage LCSorSE3 13 14 * @Licence Distribue selon les termes de la licence GPL 15 16 * @note 17 * @sudo /usr/share/se3/script/import_comptes.php 18 * @sudo /usr/share/se3/script/run_import_comptes.sh 19 */ 20 21 /** 22 23 * @Repertoire: annu 24 * file: import_sconet.php 25 */ 26 27 28 29 include "se3orlcs_import_sconet.php"; 30 31 // HTMLPurifier 32 require_once ("traitement_data.inc.php"); 33 34 if (is_admin("Annu_is_admin",$login)=="Y") { 35 require ( $pathlcsorse3."config.inc.php"); 36 require ( $path_crob_ldap_functions."crob_ldap_functions.php"); 37 38 // echo "<h2>Import des comptes, groupes,...</h2>\n"; 39 40 41 if((isset($_GET['nettoyage']))&&(isset($_GET['dossier']))){ 42 //nettoyage=oui&dossier=".$timestamp."_".$randval." 43 44 echo "<h2>Suppression des fichiers CSV générés</h2>\n"; 45 echo "<blockquote>\n"; 46 // Filtrer le $_GET['dossier']... A FAIRE 47 if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier'])){ 48 49 if(is_dir($racine_www.$chemin_csv."/".$_GET['dossier'])){ 50 echo "<p>Suppression de:</p>\n"; 51 echo "<ul>\n"; 52 if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_ele.txt")){ 53 echo "<li>f_ele.txt: "; 54 if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_ele.txt")){ 55 echo "<font color='green'>SUCCES</font>"; 56 } 57 else{ 58 echo "<font color='red'>ECHEC</font>"; 59 } 60 echo "</li>\n"; 61 } 62 if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_div.txt")){ 63 echo "<li>f_div.txt: "; 64 if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_div.txt")){ 65 echo "<font color='green'>SUCCES</font>"; 66 } 67 else{ 68 echo "<font color='red'>ECHEC</font>"; 69 } 70 echo "</li>\n"; 71 } 72 if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_men.txt")){ 73 echo "<li>f_men.txt: "; 74 if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_men.txt")){ 75 echo "<font color='green'>SUCCES</font>"; 76 } 77 else{ 78 echo "<font color='red'>ECHEC</font>"; 79 } 80 echo "</li>\n"; 81 } 82 if(file_exists($racine_www.$chemin_csv."/".$_GET['dossier']."/f_wind.txt")){ 83 echo "<li>f_wind.txt: "; 84 if(unlink($racine_www.$chemin_csv."/".$_GET['dossier']."/f_wind.txt")){ 85 echo "<font color='green'>SUCCES</font>"; 86 } 87 else{ 88 echo "<font color='red'>ECHEC</font>"; 89 } 90 echo "</li>\n"; 91 } 92 //if(disk_total_space($racine_www."/Admin/csv/".$_GET['dossier'])==0){ 93 echo "<li>Dossier ".$racine_www.$chemin_csv."/".$_GET['dossier'].": "; 94 if(rmdir($racine_www.$chemin_csv."/".$_GET['dossier'])){ 95 echo "<font color='green'>SUCCES</font>"; 96 } 97 else{ 98 echo "<font color='red'>ECHEC</font>"; 99 } 100 echo "</li>\n"; 101 //} 102 echo "</ul>\n"; 103 echo "<p>Terminé.</p>\n"; 104 } 105 else{ 106 echo "<p style='color:red;'>Le dossier proposé n'a pas l'air d'être un dossier!?</p>\n"; 107 } 108 } 109 else{ 110 echo "<p style='color:red;'>Le dossier proposé n'existe pas.</p>\n"; 111 } 112 echo "</blockquote>\n"; 113 114 include $pathlcsorse3."pdp.inc.php"; 115 exit(); 116 } 117 118 if(!isset($_POST['is_posted'])){ 119 $deverrouiller=isset($_GET['deverrouiller']) ? $_GET['deverrouiller'] : 'n'; 120 121 // Deverrouillage si un import etait annonce deja en cours: 122 if($deverrouiller=='y'){ 123 $sql="UPDATE params SET value='n' WHERE name='imprt_cmpts_en_cours'"; 124 $res0=mysql_query($sql); 125 126 if($res0){ 127 echo "<p>Déverrouillage réussi!</p>\n"; 128 } 129 else{ 130 echo "<p style='color:red;'>Echec du déverrouillage!</p>\n"; 131 } 132 } 133 134 // Un import est-il deja en cours? 135 $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; 136 $res1=mysql_query($sql); 137 if(mysql_num_rows($res1)==0){ 138 $imprt_cmpts_en_cours="n"; 139 } 140 else{ 141 $ligtmp=mysql_fetch_object($res1); 142 $imprt_cmpts_en_cours=$ligtmp->value; 143 } 144 145 if($imprt_cmpts_en_cours=="y"){ 146 echo "<p><b>ATTENTION:</b> Il semble qu'un import soit déjà en cours"; 147 148 $sql="SELECT value FROM params WHERE name='dernier_import'"; 149 $res2=mysql_query($sql); 150 if(mysql_num_rows($res1)>0){ 151 $ligtmp=mysql_fetch_object($res2); 152 echo ":<br />\n<a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>"; 153 } 154 155 echo "<br />\n"; 156 echo "Si vous êtes certain que ce n'est pas le cas, vous pouvez faire sauter le verrou.<br />Sinon, il vaut mieux patienter quelques minutes.</p>\n"; 157 158 echo "<p><a href='".$_SERVER['PHP_SELF']."?deverrouiller=y'>Faire sauter le verrou</a>.</p>\n"; 159 } 160 else{ 161 echo "<h3>Choix des fichiers source</h3>\n"; 162 163 // =========================================================== 164 // AJOUTS: 20070914 boireaus 165 166 exec("ldapsearch -xLLL ou=Trash",$retour_recherche_branche_Trash); 167 if(count($retour_recherche_branche_Trash)>0){ 168 $attribut=array("uid"); 169 $test_tab=get_tab_attribut("trash", "uid=*", $attribut); 170 if(count($test_tab)){ 171 echo "<p><span style='color:red; font-weight:bold;'>ATTENTION:</span> Il semble que la Corbeille contienne des comptes.<br />Conserver des comptes avant un import peut être gênant:</p>\n"; 172 echo "<ul>\n"; 173 echo "<li>Cela peut causer une pénurie d'uidNumber libres pour les nouveaux comptes à créer.</li>\n"; 174 echo "<li>Cela rallonge le temps de traitement.</li>\n"; 175 echo "</ul>\n"; 176 echo "<p>Il est donc recommandé de procéder au Nettoyage des comptes (<i>dans le menu Annuaire</i>) avant d'effectuer l'import de nouveaux comptes.</p>\n"; 177 } 178 } 179 // =========================================================== 180 181 182 echo "<h4>Fichier élèves</h4>\n"; 183 184 echo "<form enctype='multipart/form-data' name='formulaire1' action='".$_SERVER['PHP_SELF']."' method='post'>\n"; 185 echo "<table border='0' width='100%'>\n"; 186 187 echo "<tr>\n"; 188 echo "<td width='45%'><input type='radio' id='type_csv' name='type_fichier_eleves' value='csv' onchange=\"document.getElementById('id_csv').style.display='';document.getElementById('id_xml').style.display='none';\" /> Export CSV de Sconet"; 189 echo " "; 190 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour réaliser cette extraction depuis Sconet est:</b><br />Application Sconet/Accès Base Eleves.<br />Choisir l\'année \(<i>en cours ou en préparation selon que la bascule est ou non effectuée</i>\) Exploitation-Extraction et choisir personnalisée.<br />Les champs requis sont:<ul><li>Nom</li><li>Prénom 1</li><li>Date de naissance</li><li>N� Interne</li><li>Sexe</li><li>Division</li>')")."\"><img name=\"action_image1\" src=\"$helpinfo\"></u>\n"; 191 192 echo "</td>\n"; 193 echo "<td width='10%' align='center'>ou</td>\n"; 194 echo "<td width='45%'><input type='radio' id='type_xml' name='type_fichier_eleves' value='xml' checked onchange=\"document.getElementById('id_csv').style.display='none';document.getElementById('id_xml').style.display='';\" /> Export XML de Sconet"; 195 echo " "; 196 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour réaliser cette extraction depuis Sconet est:</b><br />Application Sconet/Accès Base Eleves/Extractions/Exports standard/Exports XML génériques/<b>Elèves sans adresses</b><br /><br /><b>Attention:</b> Ces exports XML ne sont actuellement possibles qu\'avant 9H le matin et après 17H le soir.</p><p>Ce fichier permet une meilleure génération des groupes Cours pour les groupes correspondant à des options.')")."\"><img name=\"action_image2\" src=\"$helpinfo\"></u>\n"; 197 echo "</td>\n"; 198 echo "</tr>\n"; 199 200 201 echo "<tr>\n"; 202 /* 203 echo "<td>\n"; 204 echo "<p>Les champs requis sont:</p>\n"; 205 echo "<ul>\n"; 206 echo "<li>Nom</li>\n"; 207 echo "<li>Prénom 1</li>\n"; 208 echo "<li>Date de naissance</li>\n"; 209 echo "<li>N� Interne</li>\n"; 210 echo "<li>Sexe</li>\n"; 211 echo "<li>Division</li>\n"; 212 echo "</ul>\n"; 213 214 echo "<p>Veuillez fournir le fichier CSV:<br />\n"; 215 echo "<input type=\"file\" size=\"30\" name=\"eleves_csv_file\">\n"; 216 echo "</p>\n"; 217 218 echo "</td>\n"; 219 220 echo "<td> </td>\n"; 221 222 echo "<td>\n"; 223 */ 224 echo "<td colspan='3' align='center'>\n"; 225 //echo "<p>Veuillez fournir le fichier XML: ElevesSansAdresses.xml<br />\n"; 226 echo "<p>Veuillez fournir le fichier élèves (<i>CSV ou XML selon le choix effectué ci-dessus</i>).<br />\n"; 227 echo "<span id='id_csv' style='display:none; background-color: lightgreen; border: 1px solid black;'>CSV:</span> "; 228 echo "<span id='id_xml' style='display:none; background-color: lightblue; border: 1px solid black;'>XML:</span> "; 229 echo "<input type=\"file\" size=\"30\" name=\"eleves_file\" />\n"; 230 //echo "<input type=\"file\" size=\"30\" name=\"eleves_xml_file\">\n"; 231 //echo "<input type=\"file\" size=\"30\" name=\"nomenclature_xml_file\">\n"; 232 echo "</p>\n"; 233 echo "<script type='text/javascript'> 234 if(document.getElementById('type_csv').checked){ 235 document.getElementById('id_csv').style.display=\"\"; 236 document.getElementById('id_xml').style.display=\"none\"; 237 } 238 if(document.getElementById('type_xml').checked){ 239 document.getElementById('id_csv').style.display=\"none\"; 240 document.getElementById('id_xml').style.display=\"\"; 241 } 242 </script>"; 243 echo "</td>\n"; 244 245 echo "</tr>\n"; 246 echo "</table>\n"; 247 248 $date_export_xml_precedent=crob_getParam('xml_ele_last_import'); 249 if($date_export_xml_precedent!="") { 250 echo "<p>Le pr�c�dent export XML �l�ve import� datait du <strong>$date_export_xml_precedent</strong>.</p>\n"; 251 } 252 253 echo "<h4>Fichier professeurs et emploi du temps</h4>\n"; 254 255 echo "<p>Veuillez fournir le fichier XML <i>(STS_emp_RNE_ANNEE.xml)</i>:<br />\n"; 256 echo "<span style='background-color: lightblue; border: 1px solid black;'>XML:</span> "; 257 echo "<input type=\"file\" size=\"80\" name=\"sts_xml_file\" id=\"sts_xml_file\" />\n"; 258 echo " "; 259 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le cheminement pour effectuer cet export depuis Sconet est:</b><br />STS-web/Mise à jour/Exports/Emplois du temps')")."\"><img name=\"action_image1\" src=\"$helpinfo\"></u>\n"; 260 261 echo "</p>\n"; 262 263 /* 264 $date_export_xml_precedent=crob_getParam('xml_sts_last_import'); 265 if($date_export_xml_precedent!="") { 266 echo "<p>Le pr�c�dent export XML de STS import� datait du <strong>$date_export_xml_precedent</strong>.</p>\n"; 267 } 268 */ 269 270 echo "<br />\n"; 271 272 echo "<h4>Fichier optionnel de logins</h4>\n"; 273 274 echo "<p>Vous pouvez fournir, si vous le souhaitez, un fichier de correspondances 'employeeNumber;login' pour imposer des logins aux nouveaux utilisateurs <i>(f_uid.txt)</i>:<br />\n"; 275 echo "<span id='id_csv' style='background-color: lightgreen; border: 1px solid black;'>CSV:</span> "; 276 echo "<input type=\"file\" size=\"80\" name=\"f_uid_file\" id=\"f_uid_file\" />\n"; 277 echo " "; 278 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Le fichier doit être formaté ainsi:</b><br />P1234;zebest<br />P2345;zeone<br />3456;toto<br />Avec le préfixe P sur les employeeNumber des Profs et pas de préfixe pour les Eleves.')")."\"><img name=\"action_image1\" src=\"$helpinfo\"></u>\n"; 279 echo "</p>\n"; 280 echo "<br />\n"; 281 282 echo "<h3>Configuration de l'import</h3>"; 283 284 echo "<h4>Préfixe éventuel : <input type='text' name='prefix' size='5' maxlength='5' value='' />\n"; 285 echo " "; 286 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('<b>Ex : LEP</b><br />Ce préfixe est utilisé dans les noms de groupes \(ex.: Classe_<b>LEP</b>_3D, Equipe_<b>LEP</b>_3D, Cours_<b>LEP</b>_AGL1_3D, Matiere_<b>LEP</b>_MATHS\)<br />Cela est utile dans les établissements mixtes, avec un lycée et un LP par exemple.')")."\"><img name=\"action_image3\" src=\"$helpinfo\"></u>\n"; 287 echo "</h4>"; 288 echo "<h4><label for='annuelle' style='cursor: pointer;'>Importation de début d'année ? </label><input name='annuelle' id='annuelle' type='checkbox' value='y' />\n"; 289 echo " "; 290 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Vous devez cocher cette case pour la première importation de l\'année. Cela va détruire les classes existantes.')")."\"><img name=\"action_image4\" src=\"$helpinfo\"></u>\n"; 291 292 echo "</h4>"; 293 294 echo "<h4><label for='simulation' style='cursor: pointer;'>Simulation ? </label><input name='simulation' id='simulation' type='checkbox' value='y' />\n"; 295 296 echo " "; 297 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Dans le mode simulation, les nouveaux comptes et comptes retrouvés (créés auparavant à la main et pour lesquels l\'employeeNumber n\'est pas renseigné) sont affichés sans être pour autant créés.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 298 echo "</h4>"; 299 300 301 echo "<h4><label for='temoin_creation_fichiers' style='cursor: pointer;'>Générer des fichiers CSV ? </label><input name='temoin_creation_fichiers' id='temoin_creation_fichiers' type='checkbox' value='oui' />\n"; 302 303 echo " "; 304 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('L\'import fonctionne très bien automatiquement (sans eux), mais si vous y tenez.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 305 echo "</h4>"; 306 307 echo "<h4><label for='chrono' style='cursor: pointer;'>Afficher les dates et heures dans l'import? </label><input name='chrono' id='chrono' type='checkbox' value='y' />\n"; 308 309 echo " "; 310 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Pour estimer la durée de l\'importation.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 311 echo "</h4>"; 312 313 314 // =========================================================== 315 // AJOUTS: 20070914 boireaus 316 echo "<h4>Paramètres de l'import</h4>\n"; 317 echo "<ul>\n"; 318 echo "<li>\n"; 319 echo "<label for='creer_equipes_vides' style='cursor: pointer;'>Créer les Equipes sans les peupler ? </label><input name='creer_equipes_vides' id='creer_equipes_vides' type='checkbox' value='y' />\n"; 320 echo " "; 321 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('En début d\'année, le fichier XML STS_emp peut contenir des informations erronées (<i>ne prenant pas encore en compte les nouvelles associations professeurs/matières/classes</i>).<br />La remontée de l\'emploi du temps vers STS règlera ce problème.<br />En attendant, pour créer les équipes sans y mettre les professeur de l\'année précédente, vous pouvez cocher cette case.<br />Les équipes créées, vous pourrez y affecter manuellement les professeurs pour lesquels l\'accès aux dossiers de Classes est urgent.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 322 echo "</li>\n"; 323 324 echo "<li>\n"; 325 echo "<label for='creer_cours' style='cursor: pointer;'>Ne pas créer les groupes Cours ? </label><input name='creer_cours' id='creer_cours' type='checkbox' value='n' checked />\n"; 326 echo " "; 327 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('La plupart du temps, les groupes Cours sont inutiles. Il vaut mieux ne pas les créer pour ne pas alourdir l\'annuaire.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 328 echo "</li>\n"; 329 330 echo "<li>\n"; 331 echo "<label for='creer_matieres' style='cursor: pointer;'>Ne pas créer les groupes Matières ? </label><input name='creer_matieres' id='creer_matieres' type='checkbox' value='n' />\n"; 332 echo " "; 333 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('En début d\'année, le fichier XML STS_emp peut contenir des informations erronées (<i>ne prenant pas encore en compte les nouvelles associations professeurs/matières/classes</i>).<br />La remontée de l\'emploi du temps vers STS règlera ce problème.<br />Vous pouvez ne pas créer les groupes Matières en attendant.<br />Cependant, les Matières changent assez peu d\'une année sur l\'autre et les professeurs changent assez peu de matière d\'une année sur l\'autre.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 334 echo "</li>\n"; 335 // =========================================================== 336 337 echo "<li>\n"; 338 echo "<label for='corriger_gecos_si_diff' style='cursor: pointer;'>Corriger les nom, prénom, sexe, date de naissance des comptes existants ? </label><input name='corriger_gecos_si_diff' id='corriger_gecos_si_diff' type='checkbox' value='y' />\n"; 339 echo " "; 340 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Il peut arriver que les comptes existants comportent des informations erronées<br />(<i>Sconet mal rempli, changement de nom d\'un professeur qui se marie,...</i>)<br />En cochant la case, vous autorisez les corrections des attributs cn, sn, givenName et gecos si des changements sont repérés.<br />Le login/uid n\'est en revanche pas modifié.')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 341 echo "</li>\n"; 342 343 // =========================================================== 344 345 echo "<li>\n"; 346 echo "<label for='alimenter_groupe_pp' style='cursor: pointer;'>Créer et alimenter le groupe Professeurs Principaux ? </label><input name='alimenter_groupe_pp' id='alimenter_groupe_pp' type='checkbox' value='y' />\n"; 347 echo " "; 348 echo "<u onmouseover=\"this.T_SHADOWWIDTH=5;this.T_STICKY=1;return escape".gettext("('Le groupe des Professeurs Principaux...')")."\"><img name=\"action_image5\" src=\"$helpinfo\"></u>\n"; 349 echo "</li>\n"; 350 351 echo "</ul>\n"; 352 // =========================================================== 353 354 355 echo "<input type='hidden' name='is_posted' value='yes'>\n"; 356 357 //echo "<p><input type='submit' value='Valider'></p>\n"; 358 echo "<p><input type='button' value='Valider' onClick='verif_et_valide()' /></p>\n"; 359 360 echo "</form>\n"; 361 362 // Fonction javascript 363 364 /** 365 * Verifie et valide un from 366 * @language Javascript 367 * @Parametres 368 * @return true ou false 369 */ 370 371 echo "<script type='text/javascript'> 372 function verif_et_valide(){ 373 temoin_pb='n'; 374 if(document.getElementById('annuelle').checked==true){ 375 if(document.getElementById('sts_xml_file').value==''){ 376 temoin_pb='o'; 377 } 378 } 379 confirmation=true; 380 if(temoin_pb=='o'){ 381 confirmation=confirm(\"Vous avez choisi une importations annuelle sans fournir de fichier de STS. Si vous confirmez ce choix les professeurs existants ne seront plus membres du groupe Profs en fin d'import. Voulez-vous confirmer ce choix inhabituel?\"); 382 } 383 384 if(confirmation==true){document.forms['formulaire1'].submit();}else{return false;} 385 } 386 </script>\n"; 387 388 // Fin de fonction javascript 389 390 391 } 392 include $pathlcsorse3."pdp.inc.php"; 393 } 394 else{ 395 396 397 // Un import est-il deja en cours? 398 $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; 399 $res1=mysql_query($sql); 400 if(mysql_num_rows($res1)==0){ 401 $imprt_cmpts_en_cours="n"; 402 } 403 else{ 404 $ligtmp=mysql_fetch_object($res1); 405 $imprt_cmpts_en_cours=$ligtmp->value; 406 } 407 408 if($imprt_cmpts_en_cours=="y"){ 409 echo "<p><b>ATTENTION:</b> Il semble qu'un import soit déjà en cours"; 410 411 $sql="SELECT value FROM params WHERE name='dernier_import'"; 412 $res2=mysql_query($sql); 413 if(mysql_num_rows($res1)>0){ 414 $ligtmp=mysql_fetch_object($res2); 415 echo ":<br />\n<a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>"; 416 } 417 418 echo "<br />\n"; 419 echo "Si vous êtes certain que ce n'est pas le cas, vous pouvez faire sauter le verrou.<br />Sinon, il vaut mieux patienter quelques minutes.</p>\n"; 420 421 echo "<p><a href='".$_SERVER['PHP_SELF']."?deverrouiller=y'>Faire sauter le verrou</a>.</p>\n"; 422 include $pathlcsorse3."pdp.inc.php"; 423 exit(); 424 } 425 426 427 $nouveaux_comptes=0; 428 $comptes_avec_employeeNumber_mis_a_jour=0; 429 $nb_echecs=0; 430 431 $tab_nouveaux_comptes=array(); 432 $tab_comptes_avec_employeeNumber_mis_a_jour=array(); 433 434 // Creation d'un temoin de mise a jour en cours. 435 $sql="SELECT value FROM params WHERE name='imprt_cmpts_en_cours'"; 436 $res1=mysql_query($sql); 437 if(mysql_num_rows($res1)==0){ 438 $sql="INSERT INTO params SET name='imprt_cmpts_en_cours',value='y'"; 439 $res0=mysql_query($sql); 440 } 441 else{ 442 // Si la valeur est deja a y, c'est qu'on a fait F5... un import est deja en cours. 443 $ligtmp=mysql_fetch_object($res1); 444 if($ligtmp->value=="y"){ 445 echo("<p>Un import est déj en cours"); 446 447 $sql="SELECT value FROM params WHERE name='dernier_import'"; 448 $res2=mysql_query($sql); 449 if(mysql_num_rows($res1)>0){ 450 $ligtmp=mysql_fetch_object($res2); 451 echo ": <a href='$urlse3/Admin/result.".$ligtmp->value.".html' target='_blank'>$urlse3/Admin/result.".$ligtmp->value.".html</a>"; 452 } 453 else{ 454 echo "."; 455 } 456 457 echo("<br />Veuillez patienter.</p>\n"); 458 echo("<p><a href='".$_SERVER['PHP_SELF']."'>Retour</a>.</p>\n"); 459 echo("</body>\n</html>\n"); 460 exit(); 461 } 462 463 $sql="UPDATE params SET value='y' WHERE name='imprt_cmpts_en_cours'"; 464 $res0=mysql_query($sql); 465 } 466 467 $timestamp=preg_replace("/ /","_",microtime()); 468 469 $sql="SELECT value FROM params WHERE name='dernier_import'"; 470 $res1=mysql_query($sql); 471 if(mysql_num_rows($res1)==0){ 472 $sql="INSERT INTO params SET name='dernier_import',value='$timestamp'"; 473 $res0=mysql_query($sql); 474 } 475 else{ 476 $sql="UPDATE params SET value='$timestamp' WHERE name='dernier_import'"; 477 $res0=mysql_query($sql); 478 } 479 480 481 482 483 if(($_FILES["eleves_file"]["name"]=="")&&($_FILES["sts_xml_file"]["name"]=="")){ 484 echo "<p style='color:red;'><b>ERREUR:</b> Aucun fichier n'a été fourni!</p>\n"; 485 echo "<p><a href='".$_SERVER['PHP_SELF']."'>Retour</a>.</p>\n"; 486 echo "</body>\n</html>\n"; 487 exit(); 488 } 489 490 491 492 493 494 495 496 497 $type_fichier_eleves=$_POST['type_fichier_eleves']; 498 499 $tmp_eleves_file=$_FILES['eleves_file']['tmp_name']; 500 $eleves_file=$_FILES['eleves_file']['name']; 501 $size_eleves_file=$_FILES['eleves_file']['size']; 502 503 /* 504 //=============================================== 505 echo "\$tmp_eleves_file=$tmp_eleves_file<br />"; 506 echo "\$eleves_file=$eleves_file<br />"; 507 echo "\$size_eleves_file=$size_eleves_file<br />"; 508 //=============================================== 509 */ 510 511 if(($eleves_file!='')&&($tmp_eleves_file=='')) { 512 echo "<p>L'upload du fichier <span style='color:red;'>$eleves_file</span> a semble-t-il échoué.</p>"; 513 514 $upload_max_filesize=ini_get('upload_max_filesize'); 515 $post_max_size=ini_get('post_max_size'); 516 517 echo "<p>Il se peut que le fichier fourni ait été trop volumineux.<br />PHP est actuellement paramétré avec:<br />\n"; 518 echo "</p>\n"; 519 echo "<blockquote>\n"; 520 echo "<span style='color:blue;'>upload_max_filesize</span>=<span style='color:green;'>".$upload_max_filesize."</span><br />\n"; 521 echo "<span style='color:blue;'>post_max_size</span>=<span style='color:green;'>".$post_max_size."</span><br />\n"; 522 echo "</blockquote>\n"; 523 echo "<p>\n"; 524 echo "Si ces valeurs sont insuffisantes pour vos fichiers XML, il est possible de modifier les valeurs limites dans <span style='color:green;'>/etc/php5/apache2/php.ini</span>\n"; 525 echo "</p>\n"; 526 527 die(); 528 } 529 530 531 $dest_file="$dossier_tmp_import_comptes/fichier_eleves"; 532 // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES 533 if(file_exists($dest_file)){ 534 unlink($dest_file); 535 } 536 537 if(is_uploaded_file($tmp_eleves_file)){ 538 $source_file=stripslashes("$tmp_eleves_file"); 539 $res_copy=copy("$source_file" , "$dest_file"); 540 541 // Si jamais un XML non d�zipp� a �t� fourni 542 $extension_fichier_emis=strtolower(strrchr($eleves_file,".")); 543 if (($extension_fichier_emis==".zip")||($_FILES['eleves_file']['type']=="application/zip")) { 544 545 //if(!file_exists($racine_www."/includes/pclzip.lib.php")) { 546 if(!file_exists($chemin_www_includes."/pclzip.lib.php")) { 547 echo "<p style='color:red;'>Erreur : Un fichier ZIP a �t� fourni, mais la biblioth�que de d�zippage est absente.</p>\n"; 548 require($pathlcsorse3."pdp.inc.php"); 549 die(); 550 } 551 else { 552 //$unzipped_max_filesize=getSettingValue('unzipped_max_filesize')*1024*1024; 553 554 // On consid�re un XML �l�ve de 20Mo maxi 555 $unzipped_max_filesize=20*1024*1024; 556 557 // $unzipped_max_filesize = 0 pas de limite de taille pour les fichiers extraits 558 // $unzipped_max_filesize < 0 extraction zip d�sactiv�e 559 if($unzipped_max_filesize>=0) { 560 //require_once('../lib/pclzip.lib.php'); 561 require_once('pclzip.lib.php'); 562 $archive = new PclZip($dest_file); 563 564 if (($list_file_zip = $archive->listContent()) == 0) { 565 echo "<p style='color:red;'>Erreur : ".$archive->errorInfo(true)."</p>\n"; 566 require($pathlcsorse3."pdp.inc.php"); 567 die(); 568 } 569 570 if(sizeof($list_file_zip)!=1) { 571 echo "<p style='color:red;'>Erreur : L'archive contient plus d'un fichier.</p>\n"; 572 require($pathlcsorse3."pdp.inc.php"); 573 die(); 574 } 575 576 /* 577 echo "<p>\$list_file_zip[0]['filename']=".$list_file_zip[0]['filename']."<br />\n"; 578 echo "\$list_file_zip[0]['size']=".$list_file_zip[0]['size']."<br />\n"; 579 echo "\$list_file_zip[0]['compressed_size']=".$list_file_zip[0]['compressed_size']."</p>\n"; 580 */ 581 //echo "<p>\$unzipped_max_filesize=".$unzipped_max_filesize."</p>\n"; 582 583 if(($list_file_zip[0]['size']>$unzipped_max_filesize)&&($unzipped_max_filesize>0)) { 584 echo "<p style='color:red;'>Erreur : La taille du fichier extrait (<i>".$list_file_zip[0]['size']." octets</i>) d�passe la limite param�tr�e (<i>$unzipped_max_filesize octets</i>).</p>\n"; 585 require($pathlcsorse3."pdp.inc.php"); 586 die(); 587 } 588 589 $res_extract=$archive->extract(PCLZIP_OPT_PATH, "$dossier_tmp_import_comptes/"); 590 if ($res_extract != 0) { 591 echo "<p>Le fichier upload� a �t� d�zipp�.</p>\n"; 592 $fichier_extrait=$res_extract[0]['filename']; 593 $res_copy=rename("$fichier_extrait" , "$dest_file"); 594 } 595 else { 596 echo "<p style='color:red'>Echec de l'extraction de l'archive ZIP.</p>\n"; 597 require($pathlcsorse3."pdp.inc.php"); 598 die(); 599 } 600 } 601 } 602 603 } 604 605 } 606 607 //==================================================== 608 609 $tmp_sts_file=$_FILES['sts_xml_file']['tmp_name']; 610 $sts_file=$_FILES['sts_xml_file']['name']; 611 $size_sts_file=$_FILES['sts_xml_file']['size']; 612 613 614 if(($sts_file!='')&&($tmp_sts_file=='')) { 615 echo "<p>L'upload du fichier <span style='color:red;'>$eleves_file</span> a semble-t-il échoué.</p>"; 616 617 $upload_max_filesize=ini_get('upload_max_filesize'); 618 $post_max_size=ini_get('post_max_size'); 619 620 echo "<p>Il se peut que le fichier fourni ait été trop volumineux.<br />PHP est actuellement paramétré avec:\n"; 621 echo "</p>\n"; 622 echo "<blockquote>\n"; 623 echo "<span style='color:blue;'>upload_max_filesize</span>=<span style='color:green;'>".$upload_max_filesize."</span><br />\n"; 624 echo "<span style='color:blue;'>post_max_size</span>=<span style='color:green;'>".$post_max_size."</span><br />\n"; 625 echo "</blockquote>\n"; 626 echo "<p>\n"; 627 echo "Si ces valeurs sont insuffisantes pour vos fichiers XML, il est possible de modifier les valeurs limites dans <span style='color:green;'>/etc/php5/apache2/php.ini</span>\n"; 628 echo "</p>\n"; 629 630 die(); 631 } 632 633 634 $dest_file="$dossier_tmp_import_comptes/fichier_sts"; 635 // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES 636 if(file_exists($dest_file)){ 637 unlink($dest_file); 638 } 639 640 if(is_uploaded_file($tmp_sts_file)){ 641 $source_file=stripslashes("$tmp_sts_file"); 642 $res_copy=copy("$source_file" , "$dest_file"); 643 } 644 645 //========================================== 646 647 // Fichier optionnel f_uid_file 648 $tmp_f_uid_file=$_FILES['f_uid_file']['tmp_name']; 649 $f_uid_file=$_FILES['f_uid_file']['name']; 650 $size_f_uid_file=$_FILES['f_uid_file']['size']; 651 652 $dest_file="$dossier_tmp_import_comptes/f_uid.txt"; 653 if(file_exists($dest_file)){ 654 unlink($dest_file); 655 } 656 657 $temoin_f_uid="n"; 658 if(is_uploaded_file($tmp_f_uid_file)){ 659 $source_file=stripslashes("$tmp_f_uid_file"); 660 $res_copy=copy("$source_file" , "$dest_file"); 661 662 $temoin_f_uid="y"; 663 } 664 665 666 //$timestamp=preg_replace("/ /","_",microtime()); 667 $echo_file="$racine_www/Admin/result.$timestamp.html"; 668 $dest_mode="file"; 669 $fich=fopen("$echo_file","w+"); 670 fwrite($fich,"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\"> 671 <html> 672 <head> 673 <style type='text/css'> 674 body{ 675 background: url($background) ghostwhite bottom right no-repeat fixed; 676 } 677 </style> 678 <!--head--> 679 <title>Import de comptes</title> 680 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /> 681 <!--meta http-equiv='Refresh' CONTENT='120;URL=result.$timestamp.html#menu' /--> 682 <link type='text/css' rel='stylesheet' href='$stylecss' /> 683 <body> 684 <h1 style='text-align:center;'>Import de comptes</h1> 685 686 <div id='decompte' style='float: right; border: 1px solid black;'></div> 687 688 <script type='text/javascript'> 689 cpt=120; 690 compte_a_rebours='y'; 691 692 693 /** 694 * Decompte le temps mis pour l'import sconet 695 * @language Javascript 696 * @Parametres 697 * @return le decompte qui s'affiche 698 */ 699 700 701 function decompte(cpt){ 702 if(compte_a_rebours=='y'){ 703 document.getElementById('decompte').innerHTML=cpt; 704 if(cpt>0){ 705 cpt--; 706 } 707 else{ 708 document.location='result.$timestamp.html'; 709 } 710 711 setTimeout(\"decompte(\"+cpt+\")\",1000); 712 } 713 else{ 714 document.getElementById('decompte').style.display='none'; 715 } 716 } 717 718 decompte(cpt); 719 </script>\n"); 720 fclose($fich); 721 722 723 724 725 726 $chrono=isset($_POST['chrono']) ? $_POST['chrono'] : "n"; 727 728 729 730 // =========================================================== 731 // AJOUTS: 20070914 boireaus 732 $creer_equipes_vides=isset($_POST['creer_equipes_vides']) ? $_POST['creer_equipes_vides'] : 'n'; 733 $creer_cours=isset($_POST['creer_cours']) ? $_POST['creer_cours'] : 'y'; 734 $creer_matieres=isset($_POST['creer_matieres']) ? $_POST['creer_matieres'] : 'y'; 735 // =========================================================== 736 $corriger_gecos_si_diff=isset($_POST['corriger_gecos_si_diff']) ? $_POST['corriger_gecos_si_diff'] : 'n'; 737 $alimenter_groupe_pp=isset($_POST['alimenter_groupe_pp']) ? $_POST['alimenter_groupe_pp'] : 'n'; 738 739 740 // Dossier pour les CSV 741 742 //$temoin_creation_fichiers="non"; 743 //$temoin_creation_fichiers="oui"; 744 mt_srand((float) microtime()*1000000); 745 $randval = mt_rand(); 746 $temoin_creation_fichiers=isset($_POST['temoin_creation_fichiers']) ? $_POST['temoin_creation_fichiers'] : "non"; 747 if($temoin_creation_fichiers!="non"){ 748 if(!file_exists($racine_www.$chemin_csv)){ 749 mkdir($racine_www.$chemin_csv); 750 } 751 //mt_srand((float) microtime()*1000000); 752 //$randval = mt_rand(); 753 $chemin_http_csv=$chemin_csv."/".$timestamp."_".$randval; 754 $dossiercsv=$racine_www."/".$chemin_http_csv; 755 if(!mkdir($dossiercsv)){$temoin_creation_fichiers="non";} 756 } 757 758 //my_echo("disk_total_space($dossiercsv)=".disk_total_space($dossiercsv)."<br />"); 759 760 761 // Date et heure... 762 $aujourdhui = getdate(); 763 $annee_aujourdhui = $aujourdhui['year']; 764 $mois_aujourdhui = sprintf("%02d",$aujourdhui['mon']); 765 $jour_aujourdhui = sprintf("%02d",$aujourdhui['mday']); 766 $heure_aujourdhui = sprintf("%02d",$aujourdhui['hours']); 767 $minute_aujourdhui = sprintf("%02d",$aujourdhui['minutes']); 768 $seconde_aujourdhui = sprintf("%02d",$aujourdhui['seconds']); 769 770 my_echo("<p>Import du $jour_aujourdhui/$mois_aujourdhui/$annee_aujourdhui à $heure_aujourdhui:$minute_aujourdhui:$seconde_aujourdhui<br />\n(<i>l'opération démarre 2min après; vous pouvez alors commencer à jouer avec la touche F5 pour suivre le traitement</i>)</p>\n"); 771 772 773 // Importation annuelle 774 $annuelle=isset($_POST['annuelle']) ? $_POST['annuelle'] : "n"; 775 776 // Mode simulation 777 $simulation=isset($_POST['simulation']) ? $_POST['simulation'] : "n"; 778 779 // Prefixe LP/LEGT,... 780 $prefix=isset($_POST['prefix']) ? $_POST['prefix'] : ""; 781 //$prefix=strtoupper(preg_replace("/[^A-Za-z0-9_]/", "", strtr(remplace_accents($prefix)," ","_"))); 782 $prefix=strtoupper(preg_replace("/[^A-Za-z0-9]/", "", remplace_accents($prefix))); 783 if(strlen(preg_replace("/_/","",$prefix))==0) {$prefix="";} 784 if (strlen($prefix)>0) {$prefix=$prefix."_";} 785 786 /* 787 echo "\$resultat=exec(\"/usr/bin/sudo $php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'\",$retour);"; 788 789 $resultat=exec("/usr/bin/sudo $php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'",$retour); 790 791 */ 792 793 /* 794 echo "\$resultat=exec(\"/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'\",$retour);"; 795 796 $resultat=exec("/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp'",$retour); 797 */ 798 799 $fich=fopen("$dossier_tmp_import_comptes/import_comptes.sh","w+"); 800 //fwrite($fich,"#!/bin/bash\n/usr/bin/sudo $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers'\n"); 801 802 // =========================================================== 803 // AJOUTS: 20070914 boireaus 804 //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono'\n"); 805 806 //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres'\n"); 807 808 //fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff'\n"); 809 810 fwrite($fich,"#!/bin/bash\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff' '$temoin_f_uid' '$alimenter_groupe_pp'\n"); 811 812 //echo "<p>#!/bin/bash<br />\n/usr/bin/php $chemin/import_comptes.php '$type_fichier_eleves' '$chemin_fich/fichier_eleves' '$chemin_fich/fichier_sts' '$prefix' '$annuelle' '$simulation' '$timestamp' '$randval' '$temoin_creation_fichiers' '$chrono' '$creer_equipes_vides' '$creer_cours' '$creer_matieres' '$corriger_gecos_si_diff'</p>\n"; 813 // =========================================================== 814 815 816 817 fclose($fich); 818 //chmod("/var/remote_adm/import_comptes.sh",750); 819 chmod("$dossier_tmp_import_comptes/import_comptes.sh",0750); 820 821 $d_minute_aujourdhui=sprintf("%02d",$minute_aujourdhui+2); 822 823 //echo "\$resultat=exec(\"/usr/bin/at -f /var/remote_adm/import_comptes.sh $heure_aujourdhui:$d_minute_aujourdhui\",$retour);"; 824 //$resultat=exec("/usr/bin/at -f $dossier_tmp_import_comptes/import_comptes.sh $heure_aujourdhui:$d_minute_aujourdhui",$retour); 825 // sudo 826 //echo "DBG >>/usr/bin/sudo $chemin/run_import_comptes.sh $dossier_tmp_import_comptes<br />"; 827 $resultat=exec("/usr/bin/sudo $chemin/run_import_comptes.sh $dossier_tmp_import_comptes", $retour); 828 829 if(count($retour)>0){ 830 echo "<p>Il semble que la programmation ait échoué..."; 831 for($i=0;$i<count($retour);$i++){ 832 echo "\$retour[$i]=$retour[$i]<br />\n"; 833 } 834 echo "</p>\n"; 835 } 836 837 838 839 840 echo "<p>Lancement de l'import de comptes,... en mode <b>"; 841 if($simulation=="y"){echo "simulation";}else{echo "création";} 842 echo "</b>"; 843 if($prefix!=""){echo " avec le préfixe <b>$prefix</b>";} 844 echo ".</p>\n"; 845 846 echo "<p>Patientez un peu, puis suivez ce lien: <a href='../Admin/result.$timestamp.html' target='_blank'>Résultat</a></p>\n"; 847 848 echo("<p><i>NOTES:</i></p>\n"); 849 echo("<ul>\n"); 850 //echo("<li>Pour le moment la variable \$prefix='$prefix' n'est pas geree... A FAIRE</li>\n"); 851 echo("<li><p>Les changements de classe, suppressions de membres de groupes, en dehors de l'import annuel, ne sont pas gérés.<br />Dans le cas de changement de classe d'un élève, il risque d'apparaitre membre de plusieurs classes...<br />Il faut faire le ménage à la main.<br />On pourrait par contre ajouter un test pour lister les comptes membres de plusieurs classes<br />... contrôler aussi qu'aucun compte n'est à la fois dans plusieurs parmi les groupes Profs, Eleves, Administratifs.</p></li>\n"); 852 echo("<li><p>Le mode simulation ne simule que la création/récupération d'utilisateurs.<br />Cela permet déjà de repérer si les créations annoncées sont conformes à ce que l'on attendait.<br />Les uid générés/simulés peuvent par contre être erronés si jamais deux nouveaux utilisateurs correspondent à des uid en doublon, il se peut qu'ils obtiennent en simulation le même uid.<br /><i>Exemple:</i> Deux nouveaux arrivants Alex Térieur et Alain Térieur donneront tous deux l'uid 'terieura' en simulation alors qu'en mode création, le premier obtiendrait l'uid 'terieura' et le deuxième 'terieur2'.<br />Et si l'annuaire contenait déjà un compte 'terieura' (<i>pour Anabelle Terieur</i>), les deux nouveaux comptes paraitraient recevoir en mode simultation l'uid 'terieur2' alors qu'en mode création, le premier obtiendrait l'uid 'terieur2' et le deuxième 'terieur3'.</p><p><i>Remarque:</i> Le mode simulation permet tout de même la génération de fichiers f_ele.txt, f_div.txt, f_men.txt et f_wind.txt</p></li>\n"); 853 854 echo("</ul>\n"); 855 856 include $pathlcsorse3."pdp.inc.php"; 857 flush(); 858 859 860 861 862 863 864 /* 865 //echo "On va lancer le script PHP."; 866 867 $type_fichier_eleves=$_POST['type_fichier_eleves']; 868 869 $tmp_eleves_file=$HTTP_POST_FILES['eleves_file']['tmp_name']; 870 $eleves_file=$HTTP_POST_FILES['eleves_file']['name']; 871 $size_eleves_file=$HTTP_POST_FILES['eleves_file']['size']; 872 873 if(is_uploaded_file($tmp_eleves_file)){ 874 $dest_file="tmp/$eleves_file"; 875 // SUR CA, IL VAUDRAIT SANS DOUTE MIEUX FORCER LE NOM DESTINATION POUR EVITER DES SALES BLAGUES 876 877 $source_file=stripslashes("$tmp_eleves_file"); 878 $res_copy=copy("$source_file" , "$dest_file"); 879 880 $php="/usr/bin/php"; 881 $chemin="/home/www/html/steph/test_php-cli"; 882 $resultat=exec("$php $chemin/traitement.php $type_fichier_eleves $chemin/$dest_file",$retour); 883 for($i=0;$i<count($retour);$i++){ 884 echo "\$retour[$i]=$retour[$i]<br />"; 885 } 886 887 //mer fev 28 12:53:29 steph@fuji:~/2007_02_21/se3 888 //$ cat /tmp/rapport_test.txt 889 //$type_fichier_eleves=csv 890 //$eleves_file=/home/www/html/steph/test_php-cli/tmp/exportCSVExtraction_20061018.csv 891 //mer fev 28 12:53:33 steph@fuji:~/2007_02_21/se3 892 //$ 893 894 895 //On va lancer le script PHP.$retour[0]= 896 897 898 899 } 900 */ 901 902 } 903 904 // Dans la version PHP4-CLI, envoyer le rapport par mail. 905 // Envoyer le contenu de la page aussi? 906 907 // Peut-etre forcer une sauvegarde de l'annuaire avant de proceder a une oepration qui n'est pas une simulation. 908 // Ou placer le fichier de sauvegarde? 909 // Probleme de l'encombrement a terme. 910 } 911 //include $pathlcsorse3."pdp.inc.php"; 912 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |