if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
    exit('Action désactivée pour la démo...');
}
$action = isset($_POST['f_action']) ? Clean::texte($_POST['f_action']) : '';
$check = isset($_POST['f_check']) ? Clean::entier($_POST['f_check']) : 0;
$id = isset($_POST['f_id']) ? Clean::entier($_POST['f_id']) : 0;
$id_ent = isset($_POST['f_id_ent']) ? Clean::texte($_POST['f_id_ent']) : '';
$id_gepi = isset($_POST['f_id_gepi']) ? Clean::texte($_POST['f_id_gepi']) : '';
$sconet_id = isset($_POST['f_sconet_id']) ? Clean::entier($_POST['f_sconet_id']) : 0;
$reference = isset($_POST['f_reference']) ? Clean::ref($_POST['f_reference']) : '';
$profil = isset($_POST['f_profil']) ? Clean::texte($_POST['f_profil']) : '';
$genre = isset($_POST['f_genre']) ? Clean::texte($_POST['f_genre']) : '';
$nom = isset($_POST['f_nom']) ? Clean::nom($_POST['f_nom']) : '';
$prenom = isset($_POST['f_prenom']) ? Clean::prenom($_POST['f_prenom']) : '';
$login = isset($_POST['f_login']) ? Clean::login($_POST['f_login']) : '';
$password = isset($_POST['f_password']) ? Clean::password($_POST['f_password']) : '';
$sortie_date = isset($_POST['f_sortie_date']) ? Clean::date_fr($_POST['f_sortie_date']) : '';
$box_login = isset($_POST['box_login']) ? Clean::entier($_POST['box_login']) : 0;
$box_password = isset($_POST['box_password']) ? Clean::entier($_POST['box_password']) : 0;
$box_date = isset($_POST['box_date']) ? Clean::entier($_POST['box_date']) : 0;
$courriel = isset($_POST['f_courriel']) ? Clean::courriel($_POST['f_courriel']) : '';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Ajouter un nouveau personnel
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($action == 'ajouter' && $profil && isset(Html::$tab_genre['adulte'][$genre]) && $nom && $prenom && ($box_login || $login) && ($box_password || $password) && ($box_date || $sortie_date)) {
    // Vérifier le profil
    if (!isset($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil]) || !in_array($_SESSION['TAB_PROFILS_ADMIN']['TYPE'][$profil], array('professeur', 'directeur'))) {
        exit('Erreur : profil incorrect !');
    }
    // Vérifier que l'identifiant ENT est disponible (parmi tous les utilisateurs de l'établissement)
    if ($id_ent) {
 $contenu = To::deleteBOM(To::utf8($contenu));
 // Mettre en UTF-8 si besoin et retirer le BOM éventuel
 $tab_lignes = extraire_lignes($contenu);
 // Extraire les lignes du fichier
 $separateur = extraire_separateur_csv($tab_lignes[0]);
 // Déterminer la nature du séparateur
 unset($tab_lignes[0]);
 // Supprimer la 1e ligne
 foreach ($tab_lignes as $ligne_contenu) {
     $tab_elements = str_getcsv($ligne_contenu, $separateur);
     $tab_elements = array_slice($tab_elements, 0, 4);
     if (count($tab_elements) == 4) {
         list($login, $mdp, $nom, $prenom) = $tab_elements;
         if ($nom != '' && $prenom != '') {
             $tab_users_fichier['login'][] = mb_substr(Clean::login($login), 0, 20);
             $tab_users_fichier['mdp'][] = $mdp != 'inchangé' ? mb_substr(Clean::password($mdp), 0, 20) : '';
             $tab_users_fichier['nom'][] = Clean::nom($nom);
             $tab_users_fichier['prenom'][] = Clean::prenom($prenom);
         }
     }
 }
 // On trie
 array_multisort($tab_users_fichier['nom'], SORT_ASC, SORT_STRING, $tab_users_fichier['prenom'], SORT_ASC, SORT_STRING, $tab_users_fichier['login'], $tab_users_fichier['mdp']);
 // On récupère le contenu de la base pour comparer, y compris les professeurs afin de comparer avec leurs logins, et y compris les classes pour les étiquettes pdf
 $tab_users_base = array();
 $tab_users_base['login'] = array();
 $tab_users_base['mdp'] = array();
 $tab_users_base['nom'] = array();
 $tab_users_base['prenom'] = array();
 $tab_users_base['info'] = array();
 $tab_parents = array();
  {
    exit('Erreur avec les données transmises !');
  }
}

if( $step==41 )
{
  // récupérer et tester les paramètres
  $installation = (isset($_POST['f_installation'])) ? Clean::texte($_POST['f_installation']) : '';
  $denomination = (isset($_POST['f_denomination'])) ? Clean::texte($_POST['f_denomination']) : '';
  $uai          = (isset($_POST['f_uai']))          ? Clean::uai($_POST['f_uai'])            : '';
  $adresse_site = (isset($_POST['f_adresse_site'])) ? Clean::url($_POST['f_adresse_site'])   : '';
  $nom          = (isset($_POST['f_nom']))          ? Clean::nom($_POST['f_nom'])            : '';
  $prenom       = (isset($_POST['f_prenom']))       ? Clean::prenom($_POST['f_prenom'])      : '';
  $courriel     = (isset($_POST['f_courriel']))     ? Clean::courriel($_POST['f_courriel'])  : '';
  $password     = (isset($_POST['f_password1']))    ? Clean::password($_POST['f_password1']) : '';
  if( in_array($installation,array('mono-structure','multi-structures')) && $denomination && $nom && $prenom && $courriel && $password )
  {
    // Vérifier le domaine du serveur mail seulement en mode multi-structures car ce peut être sinon une installation sur un serveur local non ouvert sur l'extérieur.
    if($installation=='multi-structures')
    {
      list($mail_domaine,$is_domaine_valide) = tester_domaine_courriel_valide($courriel);
      if(!$is_domaine_valide)
      {
        exit('Erreur avec le domaine "'.$mail_domaine.'" !');
      }
    }
    // Il faut tout transmettre car à ce stade le fichier n'existe pas.
    FileSystem::fabriquer_fichier_hebergeur_info( array(
      'HEBERGEUR_INSTALLATION'     => $installation,
      'HEBERGEUR_DENOMINATION'     => $denomination,
 * SACoche est distribué dans l’espoir qu’il vous sera utile, mais SANS AUCUNE GARANTIE :
 * sans même la garantie implicite de COMMERCIALISABILITÉ ni d’ADÉQUATION À UN OBJECTIF PARTICULIER.
 * Consultez la Licence Publique Générale GNU Affero pour plus de détails.
 * 
 * Vous devriez avoir reçu une copie de la Licence Publique Générale GNU Affero avec SACoche ;
 * si ce n’est pas le cas, consultez : <http://www.gnu.org/licenses/>.
 * 
 */
if (!defined('SACoche')) {
    exit('Ce fichier ne peut être appelé directement !');
}
if ($_SESSION['SESAMATH_ID'] == ID_DEMO) {
    exit('Action désactivée pour la démo...');
}
$password_ancien = isset($_POST['f_password0']) ? Clean::password($_POST['f_password0']) : '';
$password_nouveau = isset($_POST['f_password1']) ? Clean::password($_POST['f_password1']) : '';
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// Mettre à jour son mdp
// ////////////////////////////////////////////////////////////////////////////////////////////////////
if ($password_ancien != '' && $password_nouveau != '') {
    if ($_SESSION['USER_PROFIL_TYPE'] == 'webmestre') {
        exit(Webmestre::modifier_mdp_webmestre($password_ancien, $password_nouveau));
    } elseif ($_SESSION['USER_PROFIL_TYPE'] == 'partenaire') {
        exit(DB_WEBMESTRE_PARTENAIRE::DB_modifier_mdp_partenaire($_SESSION['USER_ID'], crypter_mdp($password_ancien), crypter_mdp($password_nouveau)));
    } else {
        exit(DB_STRUCTURE_COMMUN::DB_modifier_mdp_utilisateur($_SESSION['USER_ID'], crypter_mdp($password_ancien), crypter_mdp($password_nouveau)));
    }
}
// ////////////////////////////////////////////////////////////////////////////////////////////////////
// On ne devrait pas en arriver là !
// ////////////////////////////////////////////////////////////////////////////////////////////////////
 $contenu = file_get_contents(CHEMIN_DOSSIER_IMPORT.$fichier_nom);
 $contenu = To::deleteBOM(To::utf8($contenu)); // Mettre en UTF-8 si besoin et retirer le BOM éventuel
 $tab_lignes = extraire_lignes($contenu); // Extraire les lignes du fichier
 $separateur = extraire_separateur_csv($tab_lignes[0]); // Déterminer la nature du séparateur
 unset($tab_lignes[0]); // Supprimer la 1e ligne
 foreach ($tab_lignes as $ligne_contenu)
 {
   $tab_elements = str_getcsv($ligne_contenu,$separateur);
   $tab_elements = array_slice($tab_elements,0,4);
   if(count($tab_elements)==4)
   {
     list($login,$mdp,$nom,$prenom) = $tab_elements;
     if( ($nom!='') && ($prenom!='') )
     {
       $tab_users_fichier['login'][]  = mb_substr(Clean::login($login),0,LOGIN_LONGUEUR_MAX);
       $tab_users_fichier['mdp'][]    = ($mdp!='inchangé') ? mb_substr(Clean::password($mdp),0,PASSWORD_LONGUEUR_MAX) : '';
       $tab_users_fichier['nom'][]    = Clean::nom($nom);
       $tab_users_fichier['prenom'][] = Clean::prenom($prenom);
     }
   }
 }
 // On trie
 array_multisort(
   $tab_users_fichier['nom']   , SORT_ASC,SORT_STRING,
   $tab_users_fichier['prenom'], SORT_ASC,SORT_STRING,
   $tab_users_fichier['login'],
   $tab_users_fichier['mdp']
 );
 // On récupère le contenu de la base pour comparer, y compris les professeurs afin de comparer avec leurs logins, et y compris les classes pour les étiquettes pdf
 $tab_users_base           = array();
 $tab_users_base['login']  = array();