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(); } // 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 check_token(); $liste_tables_del = array( //"absences", //"aid", //"aid_appreciations", //"aid_config", //"avis_conseil_classe", //"classes", //"droits", //"eleves", //"responsables", //"etablissements", //"j_aid_eleves", "j_aid_utilisateurs", "j_aid_utilisateurs_gest", "j_groupes_professeurs", //"j_eleves_classes", //"j_eleves_etablissements", "j_eleves_professeurs", //"j_eleves_regime", //"j_professeurs_matieres", //"log", //"matieres", "matieres_appreciations", "matieres_notes", "matieres_appreciations_grp", "matieres_appreciations_tempo", //"periodes", "tempo2", //"temp_gep_import", "tempo", //"utilisateurs", "cn_cahier_notes", "cn_conteneurs", "cn_devoirs", "cn_notes_conteneurs", "cn_notes_devoirs", //"setting" ); //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des matières"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** // On vérifie si l'extension d_base est active verif_active_dbase(); ?>

|Retour accueil initialisation|

Quatrième phase d'initialisation
Importation des professeurs

"; 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++; } $test = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM utilisateurs WHERE statut='professeur'"),0); if ($test != 0) {$flag=1;} if ($flag != 0){ echo "

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

"; echo "

Si vous poursuivez la procédure les données telles que notes, appréciations, ... seront effacées.

"; echo ""; echo "
"; echo ""; echo ""; echo "
"; echo "


\n"; require("../lib/footer.inc.php"); die(); } } if (!isset($is_posted)) { $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++; } $del = @mysqli_query($GLOBALS["mysqli"], "DELETE FROM tempo2"); echo "
"; echo "

Importation du fichier F_wind.dbf contenant les données relatives aux professeurs."; echo "

Veuillez préciser le nom complet du fichier F_wind.dbf."; echo ""; echo ""; echo "

"; echo "

Quelle formule appliquer pour la génération du login ?

"; echo " nom"; echo "
nom (tronqué à 8 caractères)"; echo "
pnom (tronqué à 8 caractères)"; echo "
pnom (tronqué à 19 caractères)"; echo "
prenom.nom"; echo "
prenom.nom (tronqué à 19 caractères)"; echo "
nomp (tronqué à 8 caractères)"; echo "
pnom (façon LCS)"; echo "

Ces comptes seront-ils utilisés en Single Sign-On avec CAS ou LemonLDAP ? (laissez 'non' si vous ne savez pas de quoi il s'agit)

"; echo "
Non"; echo "
Oui (aucun mot de passe ne sera généré)"; echo "

"; echo "

"; } else { $dbf_file = isset($_FILES["dbf_file"]) ? $_FILES["dbf_file"] : NULL; // On commence par rendre inactifs tous les professeurs $req = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs set etat='inactif' where statut = 'professeur'"); // on efface la ligne "display_users" dans la table "setting" de façon à afficher tous les utilisateurs dans la page /utilisateurs/index.php $req = mysqli_query($GLOBALS["mysqli"], "DELETE from setting where NAME = 'display_users'"); if(mb_strtoupper($dbf_file['name']) == "F_WIND.DBF") { $fp = @dbase_open($dbf_file['tmp_name'], 0); if(!$fp) { echo "

Impossible d'ouvrir le fichier dbf !

"; echo "Cliquer ici pour recommencer !

"; } else { // on constitue le tableau des champs à extraire $tabchamps = array("AINOMU","AIPREN","AICIVI","NUMIND","FONCCO","INDNNI" ); $nblignes = dbase_numrecords($fp); //number of rows $nbchamps = dbase_numfields($fp); //number of fields if (@dbase_get_record_with_names($fp,1)) { $temp = @dbase_get_record_with_names($fp,1); } else { echo "

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

"; die(); } $nb = 0; foreach($temp as $key => $val){ $en_tete[$nb] = "$key"; $nb++; } // On range dans tabindice les indices des champs retenus for ($k = 0; $k < count($tabchamps); $k++) { for ($i = 0; $i < count($en_tete); $i++) { if ($en_tete[$i] == $tabchamps[$k]) { $tabindice[] = $i; } } } echo "

Dans le tableau ci-dessous, les identifiants en rouge correspondent à des professeurs nouveaux dans la base GEPI. les identifiants en vert correspondent à des professeurs détectés dans les fichiers GEP mais déjà présents dans la base GEPI.

Il est possible que certains professeurs ci-dessous, bien que figurant dans le fichier GEP, ne soient plus en exercice dans votre établissement cette année. C'est pourquoi il vous sera proposé en fin de procédure d'initialsation, un nettoyage de la base afin de supprimer ces données inutiles.

"; echo ""; echo ""; srand(); $nb_reg_no = 0; for($k = 1; ($k < $nblignes+1); $k++){ $ligne = dbase_get_record($fp,$k); for($i = 0; $i < count($tabchamps); $i++) { $affiche[$i] = dbase_filter(trim($ligne[$tabindice[$i]])); } //Civilité $civilite = ''; if ($affiche[2] = "ML") $civilite = "Mlle"; if ($affiche[2] = "MM") $civilite = "Mme"; if ($affiche[2] = "M.") $civilite = "M."; $prenoms = explode(" ",$affiche[1]); $premier_prenom = $prenoms[0]; $prenom_compose = ''; if (isset($prenoms[1])) $prenom_compose = $prenoms[0]."-".$prenoms[1]; $test_exist = mysqli_query($GLOBALS["mysqli"], "select login from utilisateurs where ( nom='".traitement_magic_quotes($affiche[0])."' and prenom = '".traitement_magic_quotes($premier_prenom)."' and statut='professeur' )"); $result_test = mysqli_num_rows($test_exist); if ($result_test == 0) { if ($prenom_compose != '') { $test_exist2 = mysqli_query($GLOBALS["mysqli"], "select login from utilisateurs where ( nom='".traitement_magic_quotes($affiche[0])."' and prenom = '".traitement_magic_quotes($prenom_compose)."' and statut='professeur' )"); $result_test2 = mysqli_num_rows($test_exist2); if ($result_test2 == 0) { $exist = 'no'; } else { $exist = 'yes'; $login_prof_gepi = old_mysql_result($test_exist2,0,'login'); } } else { $exist = 'no'; } } else { $exist = 'yes'; $login_prof_gepi = old_mysql_result($test_exist,0,'login'); } if ($exist == 'no') { // Aucun professeur ne porte le même nom dans la base GEPI. On va donc rentrer ce professeur dans la base $affiche[1] = traitement_magic_quotes(corriger_caracteres($affiche[1])); if ($_POST['login_gen_type'] == "name") { $temp1 = $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); //$temp1 = mb_substr($temp1,0,8); } elseif ($_POST['login_gen_type'] == "name8") { $temp1 = $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); $temp1 = mb_substr($temp1,0,8); } elseif ($_POST['login_gen_type'] == "fname8") { $temp1 = $affiche[1]{0} . $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); $temp1 = mb_substr($temp1,0,8); } elseif ($_POST['login_gen_type'] == "fname19") { $temp1 = $affiche[1]{0} . $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); $temp1 = mb_substr($temp1,0,19); } elseif ($_POST['login_gen_type'] == "firstdotname") { if ($prenom_compose != '') { $firstname = $prenom_compose; } else { $firstname = $premier_prenom; } $temp1 = $firstname . "." . $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); //$temp1 = mb_substr($temp1,0,19); } elseif ($_POST['login_gen_type'] == "firstdotname19") { if ($prenom_compose != '') { $firstname = $prenom_compose; } else { $firstname = $premier_prenom; } $temp1 = $firstname . "." . $affiche[0]; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); $temp1 = mb_substr($temp1,0,19); } elseif ($_POST['login_gen_type'] == "namef8") { $temp1 = mb_substr($affiche[0],0,7) . $affiche[1]{0}; $temp1 = mb_strtoupper($temp1); $temp1 = my_ereg_replace(" ","", $temp1); $temp1 = my_ereg_replace("-","_", $temp1); $temp1 = my_ereg_replace("'","", $temp1); //$temp1 = mb_substr($temp1,0,8); } elseif ($_POST['login_gen_type'] == "lcs") { $nom = $affiche[0]; $nom = strtolower($nom); if (preg_match("/\s/",$nom)) { $noms = preg_split("/\s/",$nom); $nom1 = $noms[0]; if (mb_strlen($noms[0]) < 4) { $nom1 .= "_". $noms[1]; $separator = " "; } else { $separator = "-"; } } else { $nom1 = $nom; $sn = ucfirst($nom); } $firstletter_nom = $nom1{0}; $firstletter_nom = mb_strtoupper($firstletter_nom); $prenom = $affiche[1]; $prenom1 = $affiche[1]{0}; $temp1 = $prenom1 . $nom1; } $login_prof = $temp1; // On teste l'unicité du login que l'on vient de créer $m = 2; $test_unicite = 'no'; $temp = $login_prof; while ($test_unicite != 'yes') { $test_unicite = test_unique_login($login_prof); if ($test_unicite != 'yes') { $login_prof = $temp.$m; $m++; } } $affiche[0] = traitement_magic_quotes(corriger_caracteres($affiche[0])); // Mot de passe if (mb_strlen($affiche[5])>2 and $affiche[4]=="ENS" and $_POST['sso']== "no") { // $pwd = md5(trim($affiche[5])); //NUMEN $mess_mdp = "NUMEN"; } elseif ($_POST['sso']== "no") { $pwd = md5(rand (1,9).rand (1,9).rand (1,9).rand (1,9).rand (1,9).rand (1,9)); $mess_mdp = $pwd; // $mess_mdp = "Inconnu (compte bloqué)"; } elseif ($_POST['sso'] == "yes") { $pwd = ''; $mess_mdp = "aucun (sso)"; } // utilise le prénom composé s'il existe, plutôt que le premier prénom //$res = mysql_query("INSERT INTO utilisateurs VALUES ('".$login_prof."', '".$affiche[0]."', '".$premier_prenom."', '".$civilite."', '".$pwd."', '', 'professeur', 'actif', 'y', '')"); $sql="INSERT INTO utilisateurs SET login='$login_prof', nom='$affiche[0]', prenom='$premier_prenom', civilite='$civilite', password='$pwd', statut='professeur', etat='actif', change_mdp='y'"; $res = mysqli_query($GLOBALS["mysqli"], $sql); // Pour debug: //echo ""; if(!$res) $nb_reg_no++; $res = mysqli_query($GLOBALS["mysqli"], "INSERT INTO tempo2 VALUES ('".$login_prof."', '".$affiche[3]."')"); echo ""; } else { $res = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs set etat='actif' where login = '".$login_prof_gepi."'"); if(!$res) $nb_reg_no++; $res = mysqli_query($GLOBALS["mysqli"], "INSERT INTO tempo2 VALUES ('".$login_prof_gepi."', '".$affiche[3]."')"); echo ""; } } dbase_close($fp); echo "

Identifiant du professeur

Nom

Prénom

Mot de passe *
$sql

".$login_prof."

".$affiche[0]."

".$premier_prenom."

".$mess_mdp."

".$login_prof_gepi."

".$affiche[0]."

".$affiche[1]."

Inchangé
"; if ($nb_reg_no != 0) { echo "

Lors de l'enregistrement des données il y a eu $nb_reg_no erreurs. Essayez de trouvez la cause de l'erreur et recommencez la procédure avant de passer à l'étape suivante."; } else { echo "

L'importation des professeurs dans la base GEPI a été effectuée avec succès !

"; echo "

* Précision sur les mots de passe (en non-SSO) :
(il est conseillé d'imprimer cette page)

"; echo "

Dans tous les cas le nouvel utilisateur est amené à changer son mot de passe lors de sa première connexion.

"; echo "

Vous pouvez procéder à la cinquième phase d'affectation des matières à chaque professeur, d'affectation des professeurs dans chaque classe et de définition des options suivies par les élèves.

"; } echo "

Procéder à la cinquième phase d'initialisation



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

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

"; } else { echo "

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

"; } } echo "


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