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(); } include("../lib/initialisation_annee.inc.php"); $liste_tables_del = $liste_tables_del_etape_resp; if (!checkAccess()) { header("Location: ../logout.php?auto=1"); die(); } // Passer à 'y' pour afficher les requêtes $debug_resp='n'; //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des responsables des élèves"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** ?>

Retour Retour accueil initialisation

Deuxième phase d'initialisation
Importation des responsables

\n"; //if(isset($step1)) { if(!isset($step1)) { $j=0; $flag=0; while (($j < count($liste_tables_del)) and ($flag==0)) { if (old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM $liste_tables_del[$j]"),0)!=0) { $flag=1; } $j++; } if ($flag != 0){ echo "

ATTENTION ...
\n"; echo "Des données concernant les responsables sont actuellement présentes dans la base GEPI

\n"; echo "

Si vous poursuivez la procédure ces données seront effacées.

\n"; echo "
\n"; echo add_token_field(); echo "\n"; echo "\n"; echo "\n"; echo "
\n"; $sql="SELECT 1=1 FROM utilisateurs WHERE statut='responsable';"; if($debug_resp=='y') {echo "$sql
";} $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { $sql="SELECT 1=1 FROM tempo_utilisateurs WHERE statut='responsable';"; if($debug_resp=='y') {echo "$sql
";} $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)==0) { echo "

Il existe un ou des comptes responsables 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 élèves (s'ils n'ont pas déjà été supprimés) et bien d'autres actions à ne pas oublier avant l'initialisation).

\n"; } } echo "


\n"; require("../lib/footer.inc.php"); die(); } } if (!isset($is_posted)) { $sql="CREATE TABLE IF NOT EXISTS `responsables2` ( `ele_id` VARCHAR( 10 ) NOT NULL , `pers_id` VARCHAR( 10 ) NOT NULL , `resp_legal` VARCHAR( 1 ) NOT NULL , `pers_contact` VARCHAR( 1 ) NOT NULL ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create_table1=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS `resp_adr` ( `adr_id` VARCHAR( 10 ) NOT NULL , `adr1` VARCHAR( 100 ) NOT NULL , `adr2` VARCHAR( 100 ) NOT NULL , `adr3` VARCHAR( 100 ) NOT NULL , `adr4` VARCHAR( 100 ) NOT NULL , `cp` VARCHAR( 6 ) NOT NULL , `pays` VARCHAR( 50 ) NOT NULL , `commune` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `adr_id` ) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create_table2=mysqli_query($GLOBALS["mysqli"], $sql); $sql="CREATE TABLE IF NOT EXISTS `resp_pers` ( `pers_id` int(11) NOT NULL, `login` varchar(50) NOT NULL, `nom` varchar(30) NOT NULL, `prenom` varchar(30) NOT NULL, `civilite` varchar(5) NOT NULL, `tel_pers` varchar(255) NOT NULL, `tel_port` varchar(255) NOT NULL, `tel_prof` varchar(255) NOT NULL, `mel` varchar(100) NOT NULL, `adr_id` varchar(10) NOT NULL, PRIMARY KEY (`pers_id`) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $res_create_table3=mysqli_query($GLOBALS["mysqli"], $sql); if(isset($verif_tables_non_vides)) { check_token(false); $j=0; while ($j < count($liste_tables_del)) { if (old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM $liste_tables_del[$j]"),0)!=0) { $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM $liste_tables_del[$j]"); } $j++; } // Ménage infos_actions: $sql="SELECT * FROM infos_actions WHERE titre LIKE 'Nouveau responsable%';"; //echo "$sql
"; $test = mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0) { echo "
"; echo "Suppression d'anciens messages en page d'accueil invitant à créer de nouveaux comptes responsables."; $sql="DELETE FROM infos_actions WHERE titre LIKE 'Nouveau responsable%';"; $del = mysqli_query($GLOBALS["mysqli"], $sql); } // Suppression des comptes de responsables: $sql="DELETE FROM utilisateurs WHERE statut='responsable';"; $del=mysqli_query($GLOBALS["mysqli"], $sql); } echo "

ATTENTION ...
Vous ne devez procéder à cette opération uniquement si la constitution des classes a été effectuée !

"; //echo "

Importation des fichiers PERSONNES.CSV, RESPONSABLES.CSV et ADRESSES.CSV contenant les données relatives aux responsables : veuillez préciser le nom complet du fichier F_ere.dbf.\n"; echo "

Importation des fichiers PERSONNES.CSV, RESPONSABLES.CSV et ADRESSES.CSV contenant les données relatives aux responsables.\n"; echo "

\n"; echo add_token_field(); echo "\n"; //echo "\n"; echo "

Sélectionnez le fichier PERSONNES.CSV:
\n"; echo "

Sélectionnez le fichier RESPONSABLES.CSV:
\n"; echo "

Sélectionnez le fichier ADRESSES.CSV:
\n"; echo "

\n"; echo "

\n"; } else { check_token(false); $nb_reg_no1=-1; $nb_reg_no2=-1; $nb_reg_no3=-1; $csv_file = isset($_FILES["pers_file"]) ? $_FILES["pers_file"] : NULL; if(mb_strtoupper($csv_file['name']) == "PERSONNES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier PERSONNES.CSV.

\n"; echo "

Cliquer ici pour recommencer !

\n"; } else{ // on constitue le tableau des champs à extraire $tabchamps=array("pers_id","nom","prenom","civilite","tel_pers","tel_port","tel_prof","mel","adr_id"); $nblignes=0; while (!feof($fp)) { $ligne = fgets($fp, 4096); if($nblignes==0){ // Quand on enregistre en CSV des fichiers DBF de GEP avec OpenOffice, les champs sont renommés avec l'ajout de ',...' en fin de nom de champ. // On ne retient pas ces ajouts pour $en_tete $temp=explode(";",$ligne); unset($en_tete); for($i=0;$i\n"; } $nbchamps=sizeof($en_tete); } $nblignes++; } fclose ($fp); unset($tabindice); $cpt_tmp=0; for ($k = 0; $k < count($tabchamps); $k++) { for ($i = 0; $i < count($en_tete); $i++) { if (trim($en_tete[$i]) == $tabchamps[$k]) { $tabindice[$cpt_tmp]=$i; //echo "\$tabindice[$cpt_tmp]=$i
\n"; $cpt_tmp++; } } } //========================= $fp=fopen($csv_file['tmp_name'],"r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no3=0; $nb_record3=0; for($k = 1; ($k < $nblignes+1); $k++){ if(!feof($fp)){ $ligne = preg_replace('/"/','',fgets($fp, 4096)); if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); for($i = 0; $i < count($tabchamps); $i++) { //$ind = $tabindice[$i]; $affiche[$i] = trim(preg_replace("/'/"," ",nettoyer_caracteres_nom($tabligne[$tabindice[$i]], "an", " '_-", ""))); } $sql="insert into resp_pers set pers_id = '".preg_replace("/[^0-9]/","",$affiche[0])."', nom = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[1])."', prenom = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[2])."', civilite = '".mysqli_real_escape_string($GLOBALS["mysqli"], casse_mot($affiche[3],'majf2'))."', tel_pers = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[4])."', tel_port = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[5])."', tel_prof = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[6])."', mel = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[7])."', adr_id = '".preg_replace("/[^0-9]/","",$affiche[8])."' "; $req = mysqli_query($GLOBALS["mysqli"], $sql); if(!$req) { echo "".mysqli_error($GLOBALS["mysqli"])." sur ".$sql."
\n"; $nb_reg_no3++; } else { $nb_record3++; $sql="SELECT * FROM tempo_utilisateurs WHERE identifiant1='".$affiche[0]."';"; if($debug_resp=='y') {echo "$sql
";} $res_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_tmp_u)>0) { $lig_tmp_u=mysqli_fetch_object($res_tmp_u); $sql="SELECT statut FROM utilisateurs WHERE login='".$lig_tmp_u->login."';"; $test_u=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_u)>0) { $lig_test_u=mysqli_fetch_object($test_u); if($lig_test_u->statut!='responsable') { echo "ANOMALIE : Un compte d'uilisateur $lig_test_u->statut existait pour le login $lig_tmp_u->login mis en réserve pour ".$personnes[$i]["nom"]." ".$personnes[$i]["prenom"]." :
$sql
"; } } else { $sql="INSERT INTO utilisateurs SET login='".$lig_tmp_u->login."', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[1])."', prenom='".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[2])."', "; if(isset($affiche[3])){ $sql.="civilite='".mysqli_real_escape_string($GLOBALS["mysqli"], casse_mot($affiche[3],'majf2'))."', "; } $sql.="password='".$lig_tmp_u->password."', salt='".$lig_tmp_u->salt."', email='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig_tmp_u->email)."', statut='responsable', etat='inactif', change_mdp='n', auth_mode='".$lig_tmp_u->auth_mode."';"; if($debug_resp=='y') {echo "$sql
";} $insert_u=mysqli_query($GLOBALS["mysqli"], $sql); if(!$insert_u) { echo "Erreur lors de la création du compte utilisateur pour ".$affiche[1]." ".$affiche[2].".
"; } else { $sql="UPDATE resp_pers SET login='".$lig_tmp_u->login."' WHERE pers_id='".$affiche[0]."';"; if($debug_resp=='y') {echo "$sql
";} $update_rp=mysqli_query($GLOBALS["mysqli"], $sql); $sql="UPDATE tempo_utilisateurs SET temoin='recree' WHERE identifiant1='".$affiche[0]."';"; if($debug_resp=='y') {echo "$sql
";} $update_tmp_u=mysqli_query($GLOBALS["mysqli"], $sql); } } } } } } } fclose($fp); if ($nb_reg_no3 != 0) { echo "

Lors de l'enregistrement des données de PERSONNES.CSV, il y a eu $nb_reg_no3 erreurs. Essayez de trouvez la cause de l'erreur et recommencez la procédure avant de passer à l'étape suivante.

\n"; } else { echo "

L'importation des personnes (responsables) dans la base GEPI a été effectuée avec succès (".$nb_record3." enregistrements au total).

\n"; } } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier PERSONNES.CSV n'a été sélectionné !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } $csv_file = isset($_FILES["resp_file"]) ? $_FILES["resp_file"] : NULL; if(mb_strtoupper($csv_file['name']) == "RESPONSABLES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier RESPONSABLES.CSV.

"; echo "

Cliquer ici pour recommencer !

"; } else{ // on constitue le tableau des champs à extraire $tabchamps=array("ele_id","pers_id","resp_legal","pers_contact"); $nblignes=0; while (!feof($fp)) { $ligne = fgets($fp, 4096); if($nblignes==0){ // Quand on enregistre en CSV des fichiers DBF de GEP avec OpenOffice, les champs sont renommés avec l'ajout de ',...' en fin de nom de champ. // On ne retient pas ces ajouts pour $en_tete $temp=explode(";",$ligne); unset($en_tete); for($i=0;$i\n"; } $nbchamps=sizeof($en_tete); } $nblignes++; } fclose ($fp); unset($tabindice); $cpt_tmp=0; for ($k = 0; $k < count($tabchamps); $k++) { for ($i = 0; $i < count($en_tete); $i++) { if (trim($en_tete[$i]) == $tabchamps[$k]) { $tabindice[$cpt_tmp]=$i; //echo "\$tabindice[$cpt_tmp]=$i
\n"; $cpt_tmp++; } } } //========================= $fp=fopen($csv_file['tmp_name'],"r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no1=0; $nb_record1=0; for($k = 1; ($k < $nblignes+1); $k++){ if(!feof($fp)){ $ligne = preg_replace('/"/','',fgets($fp, 4096)); if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); for($i = 0; $i < count($tabchamps); $i++) { //$ind = $tabindice[$i]; $affiche[$i] = nettoyer_caracteres_nom($tabligne[$tabindice[$i]], "an", "", ""); } $sql="insert into responsables2 set ele_id = '$affiche[0]', pers_id = '$affiche[1]', resp_legal = '$affiche[2]', pers_contact = '$affiche[3]' "; $req = mysqli_query($GLOBALS["mysqli"], $sql); if(!$req) { $nb_reg_no1++; echo "".mysqli_error($GLOBALS["mysqli"])." sur ".$sql."
\n"; } else { $nb_record1++; } } } } fclose($fp); $sql="SELECT r.pers_id,r.ele_id FROM responsables2 r LEFT JOIN eleves e ON e.ele_id=r.ele_id WHERE e.ele_id is NULL;"; $test=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test)>0){ echo "

Suppression de responsabilités sans élève.\n"; flush(); $cpt_nett=0; while($lig_nett=mysqli_fetch_object($test)){ //if($cpt_nett>0){echo ", ";} //echo "".$lig_nett->pers_id.""; $sql="DELETE FROM responsables2 WHERE pers_id='$lig_nett->pers_id' AND ele_id='$lig_nett->ele_id';"; $nettoyage=mysqli_query($GLOBALS["mysqli"], $sql); //flush(); $cpt_nett++; } //echo ".

\n"; echo "
$cpt_nett associations aberrantes supprimées.

\n"; } if ($nb_reg_no1 != 0) { echo "

Lors de l'enregistrement des données de RESPONSABLES.CSV, il y a eu $nb_reg_no1 erreurs. Essayez de trouvez la cause de l'erreur et recommencez la procédure avant de passer à l'étape suivante.

\n"; } else { echo "

L'importation des relations eleves/responsables dans la base GEPI a été effectuée avec succès (".$nb_record1." enregistrements au total).

\n"; } } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier RESPONSABLES.CSV n'a été sélectionné !
\n"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; echo "Cliquer ici pour recommencer !

\n"; } $csv_file = isset($_FILES["adr_file"]) ? $_FILES["adr_file"] : NULL; if(mb_strtoupper($csv_file['name']) == "ADRESSES.CSV") { $fp=fopen($csv_file['tmp_name'],"r"); if(!$fp){ echo "

Impossible d'ouvrir le fichier ADRESSES.CSV.

"; echo "

Cliquer ici pour recommencer !

"; } else{ // on constitue le tableau des champs à extraire $tabchamps=array("adr_id","adr1","adr2","adr3","adr4","cp","pays","commune"); $nblignes=0; while (!feof($fp)) { $ligne = fgets($fp, 4096); if($nblignes==0){ // Quand on enregistre en CSV des fichiers DBF de GEP avec OpenOffice, les champs sont renommés avec l'ajout de ',...' en fin de nom de champ. // On ne retient pas ces ajouts pour $en_tete $temp=explode(";",$ligne); unset($en_tete); for($i=0;$i\n"; } $nbchamps=sizeof($en_tete); } $nblignes++; } fclose ($fp); unset($tabindice); $cpt_tmp=0; for ($k = 0; $k < count($tabchamps); $k++) { for ($i = 0; $i < count($en_tete); $i++) { if (trim($en_tete[$i]) == $tabchamps[$k]) { $tabindice[$cpt_tmp]=$i; //echo "\$tabindice[$cpt_tmp]=$i
\n"; $cpt_tmp++; } } } //========================= $fp=fopen($csv_file['tmp_name'],"r"); // On lit une ligne pour passer la ligne d'entête: $ligne = fgets($fp, 4096); //========================= $nb_reg_no2=0; $nb_record2=0; for($k = 1; ($k < $nblignes+1); $k++){ if(!feof($fp)){ $ligne = preg_replace('/"/','',fgets($fp, 4096)); if(trim($ligne)!=""){ $tabligne=explode(";",$ligne); for($i = 0; $i < count($tabchamps); $i++) { //$ind = $tabindice[$i]; $affiche[$i] = preg_replace("/'$/","",preg_replace("/^'/"," ", nettoyer_caracteres_nom($tabligne[$tabindice[$i]],"an", " .'-", " "))); } $sql="insert into resp_adr set adr_id = '".preg_replace("/[^0-9]/","",$affiche[0])."', adr1 = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[1])."', adr2 = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[2])."', adr3 = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[3])."', adr4 = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[4])."', cp = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[5])."', pays = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[6])."', commune = '".mysqli_real_escape_string($GLOBALS["mysqli"], $affiche[7])."' "; $req = mysqli_query($GLOBALS["mysqli"], $sql); if(!$req) { $nb_reg_no2++; echo "".mysqli_error($GLOBALS["mysqli"])." sur ".$sql."
\n"; } else { $nb_record2++; } } } } fclose($fp); if ($nb_reg_no2 != 0) { echo "

Lors de l'enregistrement des données de ADRESSES.CSV, il y a eu $nb_reg_no2 erreurs. Essayez de trouvez la cause de l'erreur et recommencez la procédure avant de passer à l'étape suivante.

\n"; } else { echo "

L'importation des adresses de responsables dans la base GEPI a été effectuée avec succès (".$nb_record2." enregistrements au total).

\n"; } } } else if (trim($csv_file['name'])=='') { echo "

Aucun fichier ADRESSES.CSV n'a été sélectionné !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } else { echo "

Le fichier sélectionné n'est pas valide !
\n"; //echo "Cliquer ici pour recommencer !

"; echo "Cliquer ici pour recommencer !

\n"; } if(($nb_reg_no1==0)&&($nb_reg_no2==0)&&($nb_reg_no3==0)){ echo "

Vous pouvez à présent retourner à l'accueil et effectuer toutes les autres opérations d'initialisation manuellement ou bien procéder à la troisième phase d'importation des matières et de définition des options suivies par les élèves.

\n"; echo "

Retourner à l'accueil

\n"; echo "

Procéder à la troisième phase.

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