} else { die('Vous n\'avez pas autorisé Gepi à utiliser un ENT'); } } else { $temp1 = generate_unique_login($affiche[0], $affiche[1], $_POST['login_gen_type'], $_POST['login_gen_type_casse']); } if (!$temp1 || $temp1 == "") { $temp1 = "erreur_"; } $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] = nettoyer_caracteres_nom($affiche[0], "a", " _-", ""); // 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"; $mess_mdp = "Mot de passe dans le fichier fourni"; //echo "<tr><td colspan='4'>NUMEN: $affiche[5] $pwd</td></tr>"; } elseif ($_POST['sso'] == "no") {
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", " '._-", ""); //echo "A l'indice $i, on a \$tabligne[\$tabindice[$i]]=\$tabligne[$tabindice[$i]]=".$tabligne[$tabindice[$i]]."<br />"; } $login_resp=""; $sql="SELECT * FROM tempo_utilisateurs WHERE identifiant1='$affiche[0]';"; $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); $login_resp=$lig_tmp_u->login; if(test_unique_login($login_resp)!='yes') { $login_resp=""; } } $sql="insert into resp_pers set pers_id = '$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 = '$affiche[8]' ";
$sql="SELECT * FROM infos_actions WHERE titre='Format des logins générés';"; $test_ia=mysqli_query($GLOBALS["mysqli"], $sql); if(mysqli_num_rows($test_ia)==0) { enregistre_infos_actions("Format des logins générés","Le format des logins générés par Gepi pour les différentes catégories d'utilisateurs doit être contrôlé et revalidé dans la page <a href='./gestion/param_gen.php#format_login_pers'>Configuration générale</a>",array("administrateur"),'statut'); } } $login_eleve=generate_unique_login($tmp_nom, $tmp_prenom, $mode_generation_login_eleve, 'maj'); if(($login_eleve)&&($login_eleve!='')) { // On teste l'unicité du login que l'on vient de créer $k = 2; $test_unicite = 'no'; $temp = $login_eleve; while ($test_unicite != 'yes') { //$test_unicite = test_unique_e_login($login_eleve,$i); $test_unicite = test_unique_login($login_eleve); if ($test_unicite != 'yes') { $login_eleve = $temp.$k; $k++; } } } } if($login_eleve=='') { $texte.="<p style='color:red;'>Le login de $lig->ELENOM $lig->ELEPRE n'a pas pu être généré ni récupéré.</p>\n"; } else { // On ne renseigne plus l'ERENO et on n'a pas l'EMAIL dans temp_gep_import2 $sql="INSERT INTO eleves SET login='******', nom='".mysqli_real_escape_string($GLOBALS["mysqli"], $lig->ELENOM)."',
/** * Génére le login à partir du nom et du prénom * * Génère puis nettoie un login pour qu'il soit valide et unique * * Le mode de génération doit être passé en argument * * name à partir du nom * * name8 à partir du nom, réduit à 8 caractères * * name9_p à partir du nom, réduit à 9 caractères + _ + première lettre du prénom (format historique du login élève dans Gepi) * * fname8 première lettre du prénom + nom, réduit à 8 caractères * * fname19 première lettre du prénom + nom, réduit à 19 caractères * * firstdotname prénom.nom * * firstdotname19 prénom.nom réduit à 19 caractères * * namef8 nom réduit à 7 caractères + première lettre du prénom * * lcs première lettre du prénom + premier nom (+ _ + deuxième nom si le 1er nom fait moins de 4 caractères) * * si $_mode est NULL, fname8 est utilisé * * @param string $_nom nom de l'utilisateur * @param string $_prenom prénom de l'utilisateur * @param string $_mode Le mode de génération ou NULL * @param string $_casse La casse du login ('maj', 'min', '') par défaut la casse n'est pas modifiée * @return string|booleanLe login généré ou FALSE si on obtient un login vide * @see test_unique_login() */ function generate_unique_login_old($_nom, $_prenom, $_mode, $_casse = '') { if ($_mode == NULL) { $_mode = "fname8"; } // On génère le login $_prenom = remplace_accents($_prenom); $prenoms = explode(" ", $_prenom); $premier_prenom = $prenoms[0]; $prenom_compose = ''; if (isset($prenoms[1])) { $prenom_compose = $prenoms[0] . "-" . $prenoms[1]; } $_prenom = preg_replace("/[^a-zA-Z.\\-]/", "", $_prenom); $_nom = remplace_accents($_nom); $_nom = preg_replace("/[^a-zA-Z.\\-]/", "", $_nom); if ($_nom == '') { return FALSE; } if ($_mode == "name") { $temp1 = $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); } elseif ($_mode == "name8") { $temp1 = $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); $temp1 = mb_substr($temp1, 0, 8); } elseif ($_mode == "name9_p") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '_' . mb_substr($temp2, 0, 1); } } } elseif ($_mode == "name9-p") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '-' . mb_substr($temp2, 0, 1); } } } elseif ($_mode == "name9.p") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '.' . mb_substr($temp2, 0, 1); } } } elseif ($_mode == "p_name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 1) . "_" . $temp1; } } } elseif ($_mode == "p-name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 1) . "-" . $temp1; } } } elseif ($_mode == "p.name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 1) . "." . $temp1; } } } elseif ($_mode == "name9_ppp") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '_' . mb_substr($temp2, 0, 3); } } } elseif ($_mode == "name9-ppp") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '-' . mb_substr($temp2, 0, 3); } } } elseif ($_mode == "name9.ppp") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 .= '.' . mb_substr($temp2, 0, 3); } } } elseif ($_mode == "ppp_name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 3) . "_" . $temp1; } } } elseif ($_mode == "ppp-name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 3) . "-" . $temp1; } } } elseif ($_mode == "ppp.name9") { // Format d'origine des comptes élèves dans Gepi $temp1 = $_nom; $temp1 = preg_replace("/[ '-]/", "", $temp1); $temp1 = mb_substr($temp1, 0, 9); if ($_prenom != '') { $temp2 = preg_replace("/ /", "", $_prenom); $temp2 = preg_replace("/-/", "_", $temp2); $temp2 = preg_replace("/'/", "", $temp2); if ($temp2 != '') { $temp1 = mb_substr($temp2, 0, 3) . "." . $temp1; } } } elseif ($_mode == "fname8") { if ($_prenom == '') { return FALSE; } $temp1 = $_prenom[0] . $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); $temp1 = mb_substr($temp1, 0, 8); } elseif ($_mode == "fname19") { if ($_prenom == '') { return FALSE; } $temp1 = $_prenom[0] . $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); $temp1 = mb_substr($temp1, 0, 19); } elseif ($_mode == "firstdotname") { if ($_prenom == '') { return FALSE; } if ($prenom_compose != '') { $firstname = $prenom_compose; } else { $firstname = $premier_prenom; } //$temp1 = $_prenom . "." . $_nom; $temp1 = $firstname . "." . $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); } elseif ($_mode == "firstdotname19") { if ($_prenom == '') { return FALSE; } if ($prenom_compose != '') { $firstname = $prenom_compose; } else { $firstname = $premier_prenom; } //$temp1 = $_prenom . "." . $_nom; $temp1 = $firstname . "." . $_nom; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/'/", "", $temp1); $temp1 = mb_substr($temp1, 0, 19); } elseif ($_mode == "namef8") { if ($_prenom == '') { return FALSE; } $temp1 = mb_substr($_nom, 0, 7) . $_prenom[0]; $temp1 = preg_replace("/ /", "", $temp1); $temp1 = preg_replace("/-/", "_", $temp1); $temp1 = preg_replace("/'/", "", $temp1); } elseif ($_mode == "lcs") { $temp1 = my_strtolower($_nom); if (preg_match("/\\s/", $temp1)) { $noms = preg_split("/\\s/", $temp1); $temp1 = $noms[0]; if (mb_strlen($noms[0]) < 4) { $temp1 .= "_" . $noms[1]; } } $temp1 = my_strtolower(mb_substr($_prenom, 0, 1)) . $temp1; } else { return FALSE; } if ($_casse == 'maj') { $temp1 = my_strtoupper($temp1); } elseif ($_casse == 'min') { $temp1 = my_strtolower($temp1); } $login_user = $temp1; // Nettoyage final $login_user = mb_substr($login_user, 0, 50); $login_user = preg_replace("/[^A-Za-z0-9._\\-]/", "", trim($login_user)); $test1 = $login_user[0]; while ($test1 == "_" or $test1 == "-" or $test1 == ".") { $login_user = mb_substr($login_user, 1); $test1 = $login_user[0]; } $test1 = $login_user[mb_strlen($login_user) - 1]; while ($test1 == "_" or $test1 == "-" or $test1 == ".") { $login_user = mb_substr($login_user, 0, mb_strlen($login_user) - 1); $test1 = $login_user[mb_strlen($login_user) - 1]; } // On teste l'unicité du login que l'on vient de créer $m = ''; $test_unicite = 'no'; while ($test_unicite != 'yes') { $test_unicite = test_unique_login($login_user . $m); if ($test_unicite != 'yes') { if ($m == '') { $m = 2; } else { $m++; } } else { $login_user = $login_user . $m; } } return $login_user; }