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 = "Outil d'initialisation de l'année : Importation des élèves";
require_once("../lib/header.inc.php");
//**************** FIN EN-TETE *****************
require_once("init_xml_lib.php");
/*
$chaine_test="Il^ était! une§ fois* à% StBenoîtµ, blablabla";
echo "\$chaine_test=$chaine_test
";
echo "Nettoyée : ".preg_replace("/[^A-Za-z$liste_caracteres_accentues ]/","",$chaine_test)."
";
echo "Nettoyée avec /u : ".preg_replace("/[^A-Za-z$liste_caracteres_accentues ]/u","",$chaine_test)."
";
*/
// Etape...
$step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL);
$debug_ele="n";
if(isset($_GET['ad_retour'])){
$_SESSION['ad_retour']=$_GET['ad_retour'];
}
$mysql_collate=getSettingValue("mysql_collate") ? getSettingValue("mysql_collate") : "";
$chaine_mysql_collate="";
if($mysql_collate!="") {$chaine_mysql_collate="COLLATE $mysql_collate";}
//echo "\$_SESSION['ad_retour']=".$_SESSION['ad_retour']."
";
unset($remarques);
$remarques=array();
// On va uploader les fichiers XML dans le tempdir de l'utilisateur (administrateur, ou scolarité pour les màj Sconet)
$tempdir=get_user_temp_directory();
if(!$tempdir){
echo "
Il semble que le dossier temporaire de l'utilisateur ".$_SESSION['login']." ne soit pas défini!?
\n"; // Il ne faut pas aller plus loin... // SITUATION A GERER } // ======================================================= // EST-CE ENCORE UTILE? if(isset($_GET['nettoyage'])) { check_token(false); //echo "
Retour";
echo " | Autre import
Si des fichiers XML existent, ils seront supprimés...
\n"; //$tabfich=array("f_ele.csv","f_ere.csv"); $tabfich=array("eleves.xml","fichier_nomenclature.xml"); for($i=0;$i
Retour";
//echo " | Autre import";
echo " | Suppression des fichiers XML existants";
echo "
Cette page permet de remplir des tables temporaires avec les informations élèves.
\n";
echo "
Il existe un ou des comptes élèves de l'année passée, et vous n'avez pas mis ces comptes en réserve pour imposer le même login/mot de passe cette année.
Est-ce bien un choix délibéré ou un oubli de votre part?
Pour conserver ces login/mot de de passe de façon à ne pas devoir re-distribuer ces informations (et éviter de perturber ces utilisateurs), vous pouvez procéder à la mise en réserve avant d'initialiser l'année dans la page Changement d'année (vous y trouverez aussi la possibilité de conserver les comptes parents et bien d'autres actions à ne pas oublier avant l'initialisation).
L'upload du fichier a échoué.
\n"; echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "
Le fichier aurait été uploadé... mais ne serait pas présent/conservé.
\n"; echo "Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "et le volume de ".$xml_file['name']." serait
\n";
echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n";
echo "
Il semblerait que l'absence d'extension .XML ou .ZIP puisse aussi provoquer ce genre de symptômes.
Dans ce cas, ajoutez l'extension et ré-essayez.
Le fichier a été uploadé.
\n"; /* echo "\$xml_file['tmp_name']=".$xml_file['tmp_name']."Les variables du php.ini peuvent peut-être expliquer le problème:
\n";
echo "post_max_size=$post_max_size
\n";
echo "upload_max_filesize=$upload_max_filesize
\n";
echo "\$xml_file['size']=".volume_human($xml_file['size'])."
\n";
echo "
Erreur : ".$archive->errorInfo(true)."
\n"; require("../lib/footer.inc.php"); die(); } if(sizeof($list_file_zip)!=1) { echo "Erreur : L'archive contient plus d'un fichier.
\n"; require("../lib/footer.inc.php"); die(); } /* echo "\$list_file_zip[0]['filename']=".$list_file_zip[0]['filename']."
\n";
echo "\$list_file_zip[0]['size']=".$list_file_zip[0]['size']."
\n";
echo "\$list_file_zip[0]['compressed_size']=".$list_file_zip[0]['compressed_size']."
\$unzipped_max_filesize=".$unzipped_max_filesize."
\n"; if(($list_file_zip[0]['size']>$unzipped_max_filesize)&&($unzipped_max_filesize>0)) { echo "Erreur : La taille du fichier extrait (".$list_file_zip[0]['size']." octets) dépasse la limite paramétrée ($unzipped_max_filesize octets).
\n"; require("../lib/footer.inc.php"); die(); } //unlink("$dest_file"); // Pour Wamp... $res_extract=$archive->extract(PCLZIP_OPT_PATH, "../temp/".$tempdir); if ($res_extract != 0) { echo "Le fichier uploadé a été dézippé.
\n"; $fichier_extrait=$res_extract[0]['filename']; unlink("$dest_file"); // Pour Wamp... $res_copy=rename("$fichier_extrait" , "$dest_file"); } else { echo "Echec de l'extraction de l'archive ZIP.
\n"; require("../lib/footer.inc.php"); die(); } } } //fin ajout prise en compte des fichiers ZIP //=============================================================== if(!$res_copy){ echo "La copie du fichier vers le dossier temporaire a échoué.
Vérifiez que l'utilisateur ou le groupe apache ou www-data a accès au dossier temp/$tempdir
La copie du fichier vers le dossier temporaire a réussi.
\n"; $sql="DROP TABLE IF EXISTS temp_gep_import2;"; $suppr_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS `temp_gep_import2` ( `ID_TEMPO` varchar(40) NOT NULL default '', `LOGIN` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENOM` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEPRE` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELESEXE` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEDATNAIS` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENOET` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELE_ID` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEDOUBL` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELENONAT` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEREG` varchar(40) $chaine_mysql_collate NOT NULL default '', `DIVCOD` varchar(40) $chaine_mysql_collate NOT NULL default '', `ETOCOD_EP` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT1` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT2` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT3` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT4` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT5` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT6` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT7` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT8` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT9` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT10` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT11` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT12` varchar(40) $chaine_mysql_collate NOT NULL default '', `LIEU_NAISSANCE` varchar(50) $chaine_mysql_collate NOT NULL default '', `MEF_CODE` varchar(50) $chaine_mysql_collate NOT NULL default '', DATE_SORTIE DATETIME, DATE_ENTREE DATETIME ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE temp_gep_import2;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS temp_grp ( id smallint(6) unsigned NOT NULL auto_increment, ELE_ID varchar(40) NOT NULL default '', NOM_GRP varchar(255) NOT NULL default '', PRIMARY KEY id (id));"; $create_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE temp_grp;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); // 20160420 $sql="CREATE TABLE IF NOT EXISTS sconet_ele_options ( id int(11) unsigned NOT NULL auto_increment, ele_id varchar(10) NOT NULL default '', code_matiere varchar(255) NOT NULL default '', code_modalite_elect char(1) NOT NULL default '', num_option int(2) NOT NULL default '0', PRIMARY KEY id (id));"; $create_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE sconet_ele_options;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); // On va lire plusieurs fois le fichier pour remplir des tables temporaires. $ele_xml=simplexml_load_file($dest_file); if(!$ele_xml) { echo "ECHEC du chargement du fichier avec simpleXML.
\n"; require("../lib/footer.inc.php"); die(); } $nom_racine=$ele_xml->getName(); if(my_strtoupper($nom_racine)!='BEE_ELEVES') { echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Elèves.
Sa racine devrait être 'BEE_ELEVES'.
ATTENTION : L'année scolaire du fichier XML ($value) ne semble pas correspondre à l'année scolaire paramétrée dans Gepi (".getSettingValue('gepiYear').").
Auriez-vous récupéré un XML de l'année précédente ou de l'année prochaine (il arrive que l'on bascule dans Sconet en juin ou courant septembre) ?
Fichier XML élève"; if($xml_uaj!="") {$texte_maj_sconet.=" ($xml_uaj)";} if($xml_horodatage!="") {$texte_maj_sconet.=" du $xml_horodatage";} $texte_maj_sconet.="
"; echo $texte_maj_sconet; //enregistre_log_maj_sconet($texte_maj_sconet); echo "\n";
echo "Analyse du fichier pour extraire les informations de la section STRUCTURES pour ne conserver que les identifiants d'élèves affectés dans une classe...
\n";
$tab_champs_struct=array("CODE_STRUCTURE","TYPE_STRUCTURE");
$tab_ele_id=array();
$i=-1;
$objet_structures=($ele_xml->DONNEES->STRUCTURES);
foreach ($objet_structures->children() as $structures_eleve) {
//echo("
Structure
");
$chaine_structures_eleve="STRUCTURES_ELEVE";
foreach($structures_eleve->attributes() as $key => $value) {
//echo("$key=".$value."
");
if(my_strtoupper($key)=='ELEVE_ID') {
// On teste si l'ELEVE_ID existe déjà: ça ne devrait pas arriver
if(in_array($value,$tab_ele_id)) {
echo "ANOMALIE : Il semble qu'il y a plusieurs sections STRUCTURES_ELEVE pour l'ELEVE_ID '$value'.
";
}
else {
$i++;
$eleves[$i]=array();
$eleves[$i]['eleve_id']=$value;
$eleves[$i]["structures"]=array();
$j=0;
foreach($structures_eleve->children() as $structure) {
$eleves[$i]["structures"][$j]=array();
foreach($structure->children() as $key => $value) {
if(in_array(my_strtoupper($key),$tab_champs_struct)) {
$eleves[$i]["structures"][$j][my_strtolower($key)]=preg_replace("/'/","",preg_replace('/"/','',trim($value)));
}
}
$j++;
}
if($debug_import=='y') {
echo "
Tableau \$eleves[$i] :"; print_r($eleves[$i]); echo ""; } } } } } if((!isset($eleves))||(count($eleves)==0)) { echo "
Les classes d'affectation des élèves ne sont pas définies dans le fichier XML.
Votre secrétaire n'a pas encore remonté cette information dans Sconet... ou bien la remontée n'est pas encore prise en compte dans les XML.
Pendant un temps, la saisie n'était prise en compte dans les XML que le lendemain de la saisie.
La première phase s'est passée sans erreur.
\n"; } elseif($nb_err==1) { echo "$nb_err erreur.
\n"; } else{ echo "$nb_err erreurs
\n"; } $stat=$id_tempo-1-$nb_err; echo "$stat associations identifiant élève/classe ont été inséré(s) dans la table 'temp_gep_import2'.
\n"; echo "\n"; require("../lib/footer.inc.php"); die(); } } } // Fin du $step=0 elseif($step==1){ $dest_file="../temp/".$tempdir."/eleves.xml"; $sql="CREATE TABLE IF NOT EXISTS `temp_etab_import` ( `id` char(8) NOT NULL default '', `nom` char(50) NOT NULL default '', `niveau` char(50) NOT NULL default '', `type` char(50) NOT NULL default '', `cp` varchar(10) NOT NULL default '0', `ville` char(50) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table = mysqli_query($GLOBALS["mysqli"], $sql); $sql="TRUNCATE TABLE temp_etab_import;"; $vide_table = mysqli_query($GLOBALS["mysqli"], $sql); // On récupère les ele_id des élèves qui sont affectés dans une classe $sql="SELECT ele_id FROM temp_gep_import2 ORDER BY id_tempo"; $res_ele_id=mysqli_query($GLOBALS["mysqli"], $sql); affiche_debug("count(\$res_ele_id)=".count($res_ele_id)."Analyse du fichier pour extraire les informations de la section ELEVES...
\n";
//echo "
\n"; $cpt=0; $eleves=array(); //Compteur élève: $i=-1; $tab_champs_eleve=array("ID_NATIONAL", "ELENOET", "NOM", "NOM_USAGE", "NOM_DE_FAMILLE", "PRENOM", "DATE_NAISS", "DOUBLEMENT", "DATE_SORTIE", "DATE_ENTREE", "CODE_REGIME", "DATE_ENTREE", "CODE_MOTIF_SORTIE", "CODE_SEXE", "CODE_COMMUNE_INSEE_NAISS", "CODE_MEF" ); $tab_champs_scol_an_dernier=array("CODE_STRUCTURE", "CODE_RNE", "SIGLE", "DENOM_PRINC", "DENOM_COMPL", "LIGNE1_ADRESSE", "LIGNE2_ADRESSE", "LIGNE3_ADRESSE", "LIGNE4_ADRESSE", "BOITE_POSTALE", "MEL", "TELEPHONE", "CODE_COMMUNE_INSEE", "LL_COMMUNE_INSEE" ); $avec_scolarite_an_dernier="y"; $ele_xml=simplexml_load_file($dest_file); if(!$ele_xml) { echo "ECHEC du chargement du fichier avec simpleXML.
\n"; require("../lib/footer.inc.php"); die(); } $nom_racine=$ele_xml->getName(); if(my_strtoupper($nom_racine)!='BEE_ELEVES') { echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Elèves.
\n"; require("../lib/footer.inc.php"); die(); } //$indice_from_eleve_id=array(); $objet_eleves=($ele_xml->DONNEES->ELEVES); foreach ($objet_eleves->children() as $eleve) { $i++; //echo "
Sa racine devrait être 'BEE_ELEVES'.Elève $i
"; $eleves[$i]=array(); foreach($eleve->attributes() as $key => $value) { //echo "$key=".$value."
"; $eleves[$i][my_strtolower($key)]=trim($value); } foreach($eleve->children() as $key => $value) { if(in_array(my_strtoupper($key),$tab_champs_eleve)) { $eleves[$i][my_strtolower($key)]=preg_replace('/"/','',preg_replace("/'$/","",preg_replace("/^'/","",trim($value)))); //echo "\$eleve->$key=".$value."
"; } if(($avec_scolarite_an_dernier=='y')&&(my_strtoupper($key)=='SCOLARITE_AN_DERNIER')) { $eleves[$i]["scolarite_an_dernier"]=array(); foreach($eleve->SCOLARITE_AN_DERNIER->children() as $key2 => $value2) { //echo "\$eleve->SCOLARITE_AN_DERNIER->$key2=$value2
"; if(in_array(my_strtoupper($key2),$tab_champs_scol_an_dernier)) { //$eleves[$i]["scolarite_an_dernier"][strtolower($key2)]=preg_replace('/"/','',trim(traite_utf8($value2))); $eleves[$i]["scolarite_an_dernier"][my_strtolower($key2)]=preg_replace('/"/','',trim($value2)); } } } } if(isset($eleves[$i]["date_naiss"])){ //echo $eleves[$i]["date_naiss"]."
\n"; unset($naissance); $naissance=explode("/",$eleves[$i]["date_naiss"]); //$eleve_naissance_annee=$naissance[2]; //$eleve_naissance_mois=$naissance[1]; //$eleve_naissance_jour=$naissance[0]; if(isset($naissance[2])){ $eleve_naissance_annee=$naissance[2]; } else{ $eleve_naissance_annee=""; } if(isset($naissance[1])){ $eleve_naissance_mois=$naissance[1]; } else{ $eleve_naissance_mois=""; } if(isset($naissance[0])){ $eleve_naissance_jour=$naissance[0]; } else{ $eleve_naissance_jour=""; } $eleves[$i]["date_naiss"]=$eleve_naissance_annee.$eleve_naissance_mois.$eleve_naissance_jour; } if($debug_import=='y') { echo "Tableau \$eleves[$i] :"; print_r($eleves[$i]); echo ""; } } affiche_debug("count(\$eleves)=".count($eleves)."
\n"); affiche_debug("count(\$tab_ele_id)=".count($tab_ele_id)."
\n"); $stat=0; $nb_err=0; $stat_etab=0; $nb_err_etab=0; unset($tab_list_etab); $tab_list_etab=array(); $info_anomalie=""; for($i=0;$i".$eleves[$i]["nom"]." ".$eleves[$i]["prenom"]." n'est pas renseigné dans Sconet."; } */ // Pour tenir compte de la modif Sconet de l'été 2016 if(isset($eleves[$i]['nom_usage'])) { $eleves[$i]['nom']=$eleves[$i]['nom_usage']; } elseif(isset($eleves[$i]['nom_de_famille'])) { $eleves[$i]['nom']=$eleves[$i]['nom_de_famille']; } $temoin_date_sortie="n"; if(isset($eleves[$i]['date_sortie'])) { echo $eleves[$i]['prenom']." ".$eleves[$i]['nom']." a quitté l'établissement le ".$eleves[$i]['date_sortie']."
\n"; $tmp_tab_date=explode("/",$eleves[$i]['date_sortie']); if(checkdate($tmp_tab_date[1],$tmp_tab_date[0],$tmp_tab_date[2])) { $timestamp_sortie=mktime(0,0,0,$tmp_tab_date[1],$tmp_tab_date[0],$tmp_tab_date[2]); $timestamp_instant=time(); if($timestamp_instant>$timestamp_sortie){ $temoin_date_sortie="y"; } } } if($temoin_date_sortie=="y") { $sql="DELETE FROM temp_gep_import2 WHERE ele_id='".$eleves[$i]['eleve_id']."';"; $nettoyage=mysqli_query($GLOBALS["mysqli"], $sql); } else { $sql="UPDATE temp_gep_import2 SET "; $sql.="elenoet='".$eleves[$i]['elenoet']."', "; if(isset($eleves[$i]['id_national'])) {$sql.="elenonat='".$eleves[$i]['id_national']."', ";} $sql.="elenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $eleves[$i]['nom'])."', "; $sql.="elepre='".mysqli_real_escape_string($GLOBALS["mysqli"], $eleves[$i]['prenom'])."', "; if(!isset($eleves[$i]["code_sexe"])) { $eleves[$i]["code_sexe"]=1; $info_anomalie.="Le sexe de ".$eleves[$i]['nom']." ".$eleves[$i]['prenom']." n'est pas renseigné dans le fichier XML.
\n"; } $sql.="elesexe='".sexeMF($eleves[$i]["code_sexe"])."', "; $sql.="eledatnais='".$eleves[$i]['date_naiss']."', "; $sql.="eledoubl='".ouinon($eleves[$i]["doublement"])."', "; if(isset($eleves[$i]["scolarite_an_dernier"]["code_rne"])){$sql.="etocod_ep='".$eleves[$i]["scolarite_an_dernier"]["code_rne"]."', ";} if(isset($eleves[$i]["code_regime"])){$sql.="elereg='".$eleves[$i]["code_regime"]."', ";} if(isset($eleves[$i]["code_commune_insee_naiss"])){$sql.="lieu_naissance='".$eleves[$i]["code_commune_insee_naiss"]."', ";} if(isset($eleves[$i]["code_mef"])){$sql.="mef_code='".$eleves[$i]["code_mef"]."', ";} if(isset($eleves[$i]["date_entree"])){$sql.="date_entree='".get_mysql_date_from_slash_date($eleves[$i]["date_entree"])."', ";} $sql=mb_substr($sql,0,mb_strlen($sql)-2); $sql.=" WHERE ele_id='".$eleves[$i]['eleve_id']."';"; affiche_debug("$sql
\n"); $res_insert=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert){ echo "Erreur lors de la requête $sql
\n"; $nb_err++; flush(); } else{ $stat++; } // Insertion des informations de l'établissement précédent dans une table temporaire: if(isset($eleves[$i]["scolarite_an_dernier"]["code_rne"])){ $sql="INSERT INTO temp_etab_import SET "; $cpt_debut_requete=0; if($eleves[$i]["scolarite_an_dernier"]["code_rne"]!=""){ // Renseigner un tableau pour indiquer que c'est un RNE déjà traité... et tester le contenu du tableau if(!in_array($eleves[$i]["scolarite_an_dernier"]["code_rne"],$tab_list_etab)){ $tab_list_etab[]=$eleves[$i]["scolarite_an_dernier"]["code_rne"]; if(isset($eleves[$i]["scolarite_an_dernier"]["code_rne"])){ $sql.="id='".mysqli_real_escape_string($GLOBALS["mysqli"], $eleves[$i]["scolarite_an_dernier"]["code_rne"])."'"; $cpt_debut_requete++; } // NIVEAU $chaine=""; if(isset($eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ if(preg_match("/ECOLE/",$eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ $chaine="ecole"; } elseif(preg_match("/COLLEGE/",$eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ $chaine="college"; } elseif(preg_match("/LYCEE/",$eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ if(preg_match("/PROF/",$eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ $chaine="lprof"; } else{ $chaine="lycee"; } } else{ $chaine=""; } if($cpt_debut_requete>0){ $sql.=", "; } $sql.="niveau='".$chaine."'"; $cpt_debut_requete++; } // NOM if(isset($eleves[$i]["scolarite_an_dernier"]["denom_compl"])){ if($cpt_debut_requete>0){ $sql.=", "; } $nom_etab=trim(maj_min_comp($eleves[$i]["scolarite_an_dernier"]["denom_compl"])); if($nom_etab=="") { $nom_etab=casse_mot($chaine,'majf2'); } //$sql.="nom='".addslashes(maj_min_comp($eleves[$i]["scolarite_an_dernier"]["denom_compl"]))."'"; $sql.="nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $nom_etab)."'"; $cpt_debut_requete++; } else{ $sql.=", "; $nom_etab=casse_mot($chaine,'majf2'); $sql.="nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $nom_etab)."'"; $cpt_debut_requete++; } // TYPE if(isset($eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ if(preg_match("/PRIVE/",$eleves[$i]["scolarite_an_dernier"]["denom_princ"])){ $chaine="prive"; } else{ $chaine="public"; } if($cpt_debut_requete>0){ $sql.=", "; } $sql.="type='".$chaine."'"; $cpt_debut_requete++; } // CODE POSTAL: Non présent dans le fichier ElevesSansAdresses.xml // Ca y est, il a été ajouté. // *************************************** // ERREUR: code_commune_insee!=code_postal // *************************************** // Il faudrait le fichier Communes.xml ou quelque chose de ce genre. if(isset($eleves[$i]["scolarite_an_dernier"]["code_commune_insee"])){ if($cpt_debut_requete>0){ $sql.=", "; } // ***************************************** // PROBLEME: code_commune_insee!=code_postal // ***************************************** $sql.="cp='".mysqli_real_escape_string($GLOBALS["mysqli"], maj_min_comp($eleves[$i]["scolarite_an_dernier"]["code_commune_insee"]))."'"; $cpt_debut_requete++; } // COMMUNE if(isset($eleves[$i]["scolarite_an_dernier"]["ll_commune_insee"])){ if($cpt_debut_requete>0){ $sql.=", "; } $sql.="ville='".mysqli_real_escape_string($GLOBALS["mysqli"], maj_min_comp($eleves[$i]["scolarite_an_dernier"]["ll_commune_insee"]))."'"; $cpt_debut_requete++; } //echo "$sql
"; $res_insert_etab=mysqli_query($GLOBALS["mysqli"], $sql); if(!$res_insert_etab){ echo "Erreur lors de la requête $sql
\n"; $nb_err_etab++; flush(); } else{ $stat_etab++; } } } } } } } if($nb_err==0) { echo "La deuxième phase s'est passée sans erreur.
\n"; } elseif($nb_err==1) { echo "$nb_err erreur.
\n"; } else{ echo "$nb_err erreurs
\n"; } if($info_anomalie!='') { echo "$info_anomalie
\n"; } echo "$stat enregistrement(s) ont été mis à jour dans la table 'temp_gep_import2'.
\n"; //echo "\n"; echo "\n"; require("../lib/footer.inc.php"); die(); } // Fin du $step=1 elseif($step==2){ $dest_file="../temp/".$tempdir."/eleves.xml"; // On récupère les ele_id des élèves qui sont affectés dans une classe $sql="SELECT ele_id FROM temp_gep_import2 ORDER BY id_tempo"; $res_ele_id=mysqli_query($GLOBALS["mysqli"], $sql); //echo "count(\$res_ele_id)=".count($res_ele_id)."
"; unset($tab_ele_id); $tab_ele_id=array(); $cpt=0; // Pourquoi est-ce que cela ne fonctionne pas en mysql_fetch_object()??? // TROUVé: C'EST SENSIBLE à LA CASSE: IL FAUDRAIT $lig->ELE_ID //while($lig=mysql_fetch_object($res_ele_id)){ while($lig=mysqli_fetch_array($res_ele_id)){ //$tab_ele_id[$cpt]="$lig->ele_id"; $tab_ele_id[$cpt]=$lig[0]; affiche_debug("\$tab_ele_id[$cpt]=$tab_ele_id[$cpt]
"); $cpt++; } /* echo "Lecture du fichier Elèves...
\n"; //echo "\n"; while(!feof($fp)){ $ligne[]=fgets($fp,4096); } fclose($fp); //echo "Terminé.
\n"; */ flush(); echo ""; echo "Analyse du fichier pour extraire les informations de la section OPTIONS...
\n"; //echo "\n"; $ele_xml=simplexml_load_file($dest_file); if(!$ele_xml) { echo "ECHEC du chargement du fichier avec simpleXML.
\n"; require("../lib/footer.inc.php"); die(); } $nom_racine=$ele_xml->getName(); if(my_strtoupper($nom_racine)!='BEE_ELEVES') { echo "ERREUR: Le fichier XML fourni n'a pas l'air d'être un fichier XML Elèves.
\n"; require("../lib/footer.inc.php"); die(); } $tab_champs_opt=array("NUM_OPTION","CODE_MODALITE_ELECT","CODE_MATIERE"); $i=-1; // PARTIE
Sa racine devrait être 'BEE_ELEVES'.$objet_options=($ele_xml->DONNEES->OPTIONS); foreach ($objet_options->children() as $option) { // $option est un