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 "- Seules la table contenant les utilisateurs (professeurs, admin, ...) et la table mettant en relation les matières et les professeurs seront conservées.
";
echo "- Les professeurs de l'année passée présents dans la base GEPI et non présents dans la base GEP de cette année ne sont pas effacés de la base GEPI mais simplement déclarés \"inactifs\".
";
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 "";
} 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 "Identifiant du professeur | Nom | Prénom | Mot de passe * |
";
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 "| $sql |
";
if(!$res) $nb_reg_no++;
$res = mysqli_query($GLOBALS["mysqli"], "INSERT INTO tempo2 VALUES ('".$login_prof."', '".$affiche[3]."')");
echo "".$login_prof." | ".$affiche[0]." | ".$premier_prenom." | ".$mess_mdp." |
";
} 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 "".$login_prof_gepi." | ".$affiche[0]." | ".$affiche[1]." | Inchangé |
";
}
}
dbase_close($fp);
echo "
";
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)
- Lorsqu'un nouveau professeur est inséré dans la base GEPI, son mot de passe lors de la première
connexion à GEPI est son NUMEN.
- Si le NUMEM n'est pas disponible dans le fichier F_wind.dbf, GEPI génère aléatoirement
un mot de passe.
";
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");
?>