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(); } include("../lib/initialisation_annee.inc.php"); $liste_tables_del = $liste_tables_del_etape_professeurs; //**************** EN-TETE ***************** $titre_page = "Outil d'initialisation de l'année : Importation des professeurs"; require_once("../lib/header.inc.php"); //************** FIN EN-TETE *************** $en_tete=isset($_POST['en_tete']) ? $_POST['en_tete'] : "no"; ?>
Vous allez effectuer la quatrième étape : elle consiste à importer le fichier g_professeurs.csv contenant les données des professeurs.
\n"; echo "Les champs suivants doivent être présents, dans l'ordre, et séparés par un point-virgule :
\n"; echo "Veuillez préciser le nom complet du fichier g_professeurs.csv.
\n"; echo "\n"; } else { // // Quelque chose a été posté // if ($_POST['action'] == "save_data") { check_token(false); // // On enregistre les données dans la base. // Le fichier a déjà été affiché, et l'utilisateur est sûr de vouloir enregistrer // // Première étape : on vide les tables echo "On vide d'abord les tables suivantes : ";
$j=0;
$k=0;
while ($j < count($liste_tables_del)) {
$sql="SHOW TABLES LIKE '".$liste_tables_del[$j]."';";
//echo "$sql
";
$test = sql_query1($sql);
if ($test != -1) {
if($k>0) {echo ", ";}
$sql="SELECT 1=1 FROM $liste_tables_del[$j];";
$res_test_tab=mysqli_query($GLOBALS["mysqli"], $sql);
if(mysqli_num_rows($res_test_tab)>0) {
$sql="DELETE FROM $liste_tables_del[$j];";
$del = @mysqli_query($GLOBALS["mysqli"], $sql);
echo "".$liste_tables_del[$j]."";
echo " (".mysqli_num_rows($res_test_tab).")";
}
else {
echo $liste_tables_del[$j];
}
$k++;
}
$j++;
}
// On passe tous les utilisateurs en etat "inactif"
echo "
\n";
echo "
On passe tous les utilisateurs en etat 'inactif' pour ne réactiver par la suite que les professeurs encore présents. "; $res = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET etat='inactif' WHERE statut = 'professeur'"); $sql="SELECT * FROM temp_profs;"; $res_temp=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($res_temp)==0) { echo "
ERREUR : Aucun professeur n'a été trouvé ???
\n"; echo "On remplit la table 'utilisateurs' pour créer les nouveaux comptes et on ré-active d'anciens comptes : ";
$i = 0;
// Compteur d'erreurs
$error = 0;
// Compteur d'enregistrement
$total = 0;
$total_deja_presents = 0;
while ($lig=mysqli_fetch_object($res_temp)) {
$reg_nom = $lig->nom;
$reg_prenom = $lig->prenom;
$reg_civilite = $lig->civilite;
$reg_email = $lig->email;
$reg_login = $lig->login;
$reg_sso = $lig->sso;
// On nettoie et on vérifie :
$reg_nom=my_strtoupper(nettoyer_caracteres_nom($reg_nom, "a", " '_-", ""));
if (mb_strlen($reg_nom) > 50) $reg_nom = mb_substr($reg_nom, 0, 50);
$reg_prenom=nettoyer_caracteres_nom($reg_prenom, "a", " '_-", "");
if (mb_strlen($reg_prenom) > 50) $reg_prenom = mb_substr($reg_prenom, 0, 50);
if ($reg_civilite != "M." AND $reg_civilite != "MME" AND $reg_civilite != "MLLE") { $reg_civilite = "";}
if (!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $reg_email)) $reg_email = "-";
// Déjà fait avant:
$reg_login = preg_replace("/[^A-Za-z0-9._]/","",trim(my_strtoupper($reg_login)));
if (mb_strlen($reg_login) > 50) $reg_login = mb_substr($reg_login, 0, 50);
// Maintenant que tout est propre, on fait un test pour voir si le compte n'existe pas déjà
$test = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(login) FROM utilisateurs WHERE login = '" . $reg_login . "'"), 0);
if ($test == 0) {
// Test négatif : aucun professeur avec ce login. On enregistre.
$reg_password = "";
switch($reg_sso){
case "ldap":
$auth_mode = "ldap";
$change_mdp = "n";
break;
case "sso":
$auth_mode = "sso";
$change_mdp = "n";
break;
default:
$auth_mode = "gepi";
$change_mdp = "y";
// On génère un password :
$feed = "0123456789abcdefghijklmnopqrstuvwxyz";
for ($t=0; $t < 20; $t++){
$reg_password .= mb_substr($feed, rand(0, mb_strlen($feed)-1), 1);
}
$reg_password = md5($reg_password);
break;
}
$insert = mysqli_query($GLOBALS["mysqli"], "INSERT INTO utilisateurs SET " .
"login = '" . $reg_login . "', " .
"nom = '" . mysqli_real_escape_string($GLOBALS["mysqli"], $reg_nom) . "', " .
"prenom = '" . mysqli_real_escape_string($GLOBALS["mysqli"], $reg_prenom) . "', " .
"civilite = '" . $reg_civilite . "', " .
"password = '" . $reg_password . "', " .
"email = '" . mysqli_real_escape_string($GLOBALS["mysqli"], $reg_email) . "', " .
"statut = 'professeur', " .
"etat = 'actif', " .
"change_mdp = '" . $change_mdp . "', " .
"auth_mode = '" . $auth_mode . "' " );
if (!$insert) {
$error++;
echo "".mysqli_error($GLOBALS["mysqli"]).' Il y a eu " . $error . " erreurs. " . $total . " professeurs ont été enregistrés. " . $total_deja_presents . " professeurs déjà présents. Impossible d'ouvrir le fichier CSV ! Cliquer ici pour recommencer ! A titre d'information, la ligne d'entête passée est la suivante : Aucun fichier n'a été sélectionné ! Le fichier sélectionné n'est pas valide !
';
} else {
$total++;
}
} else {
// Le login existe déjà. On passe l'utilisateur à nouveau en état 'actif'
$res = mysqli_query($GLOBALS["mysqli"], "UPDATE utilisateurs SET etat = 'actif' WHERE login = '" . $reg_login . "'");
$total_deja_presents++;
}
$i++;
}
if ($error > 0) {echo "
$ligne
Si il ne s'agit pas d'une ligne d'entête, vous pouvez refaire cette étape.
\n";
echo "Cliquer ici pour recommencer !
\n";
echo "Cliquer ici pour recommencer !