DB_STRUCTURE_COMMUN::DB_creer_remplir_tables_structure(); // Il est arrivé que la fonction DB_modifier_parametres() retourne une erreur disant que la table n'existe pas. // Comme si les requêtes de DB_creer_remplir_tables_structure() étaient en cache, et pas encore toutes passées (parcequ'au final, quand on va voir la base, toutes les tables sont bien là). // Est-ce que c'est possible au vu du fonctionnement de la classe de connexion ? Et, bien sûr, y a-t-il quelque chose à faire pour éviter ce problème ? // En attendant une réponse de SebR, j'ai mis ce sleep(1)... sans trop savoir si cela pouvait aider... @sleep(1); // Personnaliser certains paramètres de la structure $tab_parametres = array(); $tab_parametres['version_base'] = VERSION_BASE_STRUCTURE; $tab_parametres['webmestre_uai'] = $uai; $tab_parametres['webmestre_denomination'] = $denomination; $tab_parametres['etablissement_denomination'] = $denomination; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // Insérer le compte administrateur dans la base de cette structure $password = fabriquer_mdp(); $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur( 0 /*user_sconet_id*/ , 0 /*user_sconet_elenoet*/ , '' /*reference*/ , 'ADM' , 'I' /*user_genre*/ , $contact_nom , $contact_prenom , NULL /*user_naissance_date*/ , $contact_courriel , 'user' /*user_email_origine*/ , 'admin' /*login*/ , crypter_mdp($password) , 0 /*classe_id*/ , '' /*id_ent*/ , '' /*id_gepi*/ ); // Pour les admins, abonnement obligatoire aux contacts effectués depuis la page d'authentification DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement( $user_id , 'contact_externe' , 'accueil' ); // Envoyer un courriel au contact et / ou une copie du courriel au webmestre $courriel_contenu = ( $courriel_envoi || $courriel_copie ) ? Webmestre::contenu_courriel_inscription( $base_id , $denomination , $contact_nom , $contact_prenom , 'admin' , $password , URL_DIR_SACOCHE ) : '' ; $courriel_titre = ( $courriel_envoi || $courriel_copie ) ? 'Création compte - Inscription n°'.$base_id : '' ; if($courriel_envoi) { $courriel_bilan = Sesamail::mail( $contact_courriel , $courriel_titre , $courriel_contenu ); if(!$courriel_bilan) { exit('Erreur lors de l\'envoi du courriel !'); } } if($courriel_copie) {
if (mb_strlen($password) < $_SESSION['TAB_PROFILS_ADMIN']['MDP_LONGUEUR_MINI'][$profil]) { exit('Erreur : mot de passe trop court pour ce profil !'); } } // 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 ($courriel) { if (HEBERGEUR_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 . '" !'); } } } $user_email_origine = $courriel ? 'admin' : ''; // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id, 0, $reference, $profil, $genre, $nom, $prenom, NULL, $courriel, $user_email_origine, $login, crypter_mdp($password), 0, $id_ent, $id_gepi); // Pour les professeurs et directeurs, abonnement obligatoire aux signalements d'un souci pour une appréciation d'un bilan officiel DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'bilan_officiel_appreciation', 'accueil'); // Il peut (déjà !) falloir lui affecter une date de sortie... if ($box_date) { $sortie_date = '-'; $sortie_date_mysql = SORTIE_DEFAUT_MYSQL; } else { $sortie_date_mysql = convert_date_french_to_mysql($sortie_date); DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user($user_id, array(':sortie_date' => $sortie_date_mysql)); } // Afficher le retour echo '<tr id="id_' . $user_id . '" class="new">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="' . $user_id . '" /></td>'; echo '<td class="label">' . html($id_ent) . '</td>'; echo '<td class="label">' . html($id_gepi) . '</td>';
} } } // Cas de la date de naissance if($box_birth_date) { $birth_date = '-' ; $birth_date_mysql = NULL; } else { $birth_date_mysql = convert_date_french_to_mysql($birth_date); } $user_email_origine = ($courriel) ? 'admin' : '' ; // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur( $sconet_id , $sconet_num , $reference , $profil , $genre , $nom , $prenom , $birth_date_mysql , $courriel , $user_email_origine , $login , crypter_mdp($password) , 0 /*eleve_classe_id*/ , $id_ent , $id_gepi ); // Il peut (déjà !) falloir lui affecter une date de sortie... if($box_sortie_date) { $sortie_date = '-' ; $sortie_date_mysql = SORTIE_DEFAUT_MYSQL; } else { $sortie_date_mysql = convert_date_french_to_mysql($sortie_date); DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user( $user_id , array(':sortie_date'=>$sortie_date_mysql) ); } // Si on inscrit un élève après avoir fait afficher une classe ou un groupe, alors on l'affecte dans la classe ou le groupe en question $tab_groupe_type = array( 'c'=>'classe' , 'g'=>'groupe' ); if( isset($tab_groupe_type[$groupe_type]) && $groupe_id ) {
{ if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('reference',$reference,NULL,'directeur') ) { exit('Erreur : référence déjà utilisée !'); } } // Construire le login $login = fabriquer_login($prenom,$nom,'directeur'); // Puis tester le login (parmi tout le personnel de l'établissement) if( DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login',$login) ) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($sconet_id,$sconet_num=0,$reference,'directeur',$nom,$prenom,$login,crypter_mdp($password),0,$id_ent,$id_gepi); // Il peut (déjà !) falloir lui affecter une date de sortie... if($not_exit) { $sortie_date = '-' ; $sortie_date_mysql = SORTIE_DEFAUT_MYSQL; } else { $sortie_date_mysql = convert_date_french_to_mysql($sortie_date); DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_user( $user_id , array(':sortie_date'=>$sortie_date_mysql) ); } // Afficher le retour echo'<tr id="id_'.$user_id.'" class="new">'; echo '<td class="nu"><input type="checkbox" name="f_ids" value="'.$user_id.'" /></td>'; echo '<td class="label">'.html($id_ent).'</td>';
DB_STRUCTURE_COMMUN::DB_creer_remplir_tables_structure(); // Il est arrivé que la fonction DB_modifier_parametres() retourne une erreur disant que la table n'existe pas. // Comme si les requêtes de DB_creer_remplir_tables_structure() étaient en cache, et pas encore toutes passées (parcequ'au final, quand on va voir la base, toutes les tables sont bien là). // Est-ce que c'est possible au vu du fonctionnement de la classe de connexion ? Et, bien sûr, y a-t-il quelque chose à faire pour éviter ce problème ? // En attendant une réponse de SebR, j'ai mis ce sleep(1)... sans trop savoir si cela pouvait aider... @sleep(1); // Personnaliser certains paramètres de la structure $tab_parametres = array(); $tab_parametres['version_base'] = VERSION_BASE_STRUCTURE; $tab_parametres['webmestre_uai'] = HEBERGEUR_UAI; $tab_parametres['webmestre_denomination'] = HEBERGEUR_DENOMINATION; $tab_parametres['etablissement_denomination'] = HEBERGEUR_DENOMINATION; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // Insérer un compte administrateur dans la base de la structure $password = fabriquer_mdp(); $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur( 0 /*user_sconet_id*/ , 0 /*user_sconet_elenoet*/ , '' /*reference*/ , 'ADM' , 'I' /*user_genre*/ , WEBMESTRE_NOM , WEBMESTRE_PRENOM , NULL /*user_naissance_date*/ , WEBMESTRE_COURRIEL , 'user' /*user_email_origine*/ , 'admin' /*login*/ , crypter_mdp($password) , 0 /*classe_id*/ , '' /*id_ent*/ , '' /*id_gepi*/ ); // Pour les admins, abonnement obligatoire aux contacts effectués depuis la page d'authentification DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement( $user_id , 'contact_externe' , 'accueil' ); // Affichage du retour $affichage .= '<p><label class="valide">Les tables de la base de données ont été installées.</label></p>'.NL; $affichage .= '<span class="astuce">Le premier compte administrateur a été créé avec votre identité :</span>'.NL; $affichage .= '<ul class="puce">'; $affichage .= '<li>nom d\'utilisateur " admin "</li>'; $affichage .= '<li>mot de passe " '.$password.' "</li>'; $affichage .= '</ul>'.NL; $affichage .= '<label class="alerte">Notez ces identifiants avant de poursuivre !</label>'.NL; $affichage .= '<hr />'.NL; $affichage .= '<h2>Installation logicielle terminée</h2>'.NL; $affichage .= '<p>Se connecter avec le compte webmestre : <a href="'.URL_DIR_SACOCHE.'?webmestre">'.URL_DIR_SACOCHE.'?webmestre</a></p>'.NL; $affichage .= '<p>Se connecter avec le compte administrateur : <a href="'.URL_DIR_SACOCHE.'">'.URL_INSTALL_SACOCHE.'</a></p>'.NL; }
$login = fabriquer_login($tab_memo_analyse['ajouter'][$i_fichier]['prenom'], $tab_memo_analyse['ajouter'][$i_fichier]['nom'], $tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle']); // Puis tester le login (parmi tout le personnel de l'établissement) if (DB_STRUCTURE_ADMINISTRATEUR::DB_tester_utilisateur_identifiant('login', $login)) { // Login pris : en chercher un autre en remplaçant la fin par des chiffres si besoin $login = DB_STRUCTURE_ADMINISTRATEUR::DB_rechercher_login_disponible($login); } // Construire le password if ($import_profil != 'eleve' || !$_SESSION['TAB_PROFILS_ADMIN']['MDP_LONGUEUR_MINI']['ELV'] || empty($tab_memo_analyse['ajouter'][$i_fichier]['birth_date'])) { $password = fabriquer_mdp($tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle']); } else { $password = str_replace('/', '', $tab_memo_analyse['ajouter'][$i_fichier]['birth_date']); } // Attention à la date de naissance, définie seulement pour les élèves $birth_date = empty($tab_memo_analyse['ajouter'][$i_fichier]['birth_date']) ? NULL : convert_date_french_to_mysql($tab_memo_analyse['ajouter'][$i_fichier]['birth_date']); // Ajouter l'utilisateur $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur($tab_memo_analyse['ajouter'][$i_fichier]['sconet_id'], $tab_memo_analyse['ajouter'][$i_fichier]['sconet_num'], $tab_memo_analyse['ajouter'][$i_fichier]['reference'], $tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle'], $tab_memo_analyse['ajouter'][$i_fichier]['genre'], $tab_memo_analyse['ajouter'][$i_fichier]['nom'], $tab_memo_analyse['ajouter'][$i_fichier]['prenom'], $birth_date, $tab_memo_analyse['ajouter'][$i_fichier]['courriel'], $tab_memo_analyse['ajouter'][$i_fichier]['email_origine'], $login, crypter_mdp($password), $tab_memo_analyse['ajouter'][$i_fichier]['classe']); if ($import_profil == 'professeur') { // Pour les professeurs et directeurs, abonnement obligatoire aux signalements d'un souci pour une appréciation d'un bilan officiel DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'bilan_officiel_appreciation', 'accueil'); } $tab_i_fichier_TO_id_base[$i_fichier] = (int) $user_id; $nb_add++; $tab_password[$user_id] = $password; $classe_ou_profil = $import_profil == 'eleve' ? $tab_nom_classe[$tab_memo_analyse['ajouter'][$i_fichier]['classe']] : $tab_memo_analyse['ajouter'][$i_fichier]['profil_sigle']; $fcontenu_csv .= '"' . $tab_memo_analyse['ajouter'][$i_fichier]['sconet_id'] . '"' . $separateur . '"' . $tab_memo_analyse['ajouter'][$i_fichier]['sconet_num'] . '"' . $separateur . '"' . $tab_memo_analyse['ajouter'][$i_fichier]['reference'] . '"' . $separateur . $classe_ou_profil . $separateur . $tab_memo_analyse['ajouter'][$i_fichier]['nom'] . $separateur . $tab_memo_analyse['ajouter'][$i_fichier]['prenom'] . $separateur . $login . $separateur . '"' . $password . '"' . "\r\n"; $ligne1 = $classe_ou_profil; $ligne2 = $tab_memo_analyse['ajouter'][$i_fichier]['nom'] . ' ' . $tab_memo_analyse['ajouter'][$i_fichier]['prenom']; $ligne3 = 'Utilisateur : ' . $login; $ligne4 = 'Mot de passe : ' . $password; $fcontenu_pdf_tab[] = $ligne1 . "\r\n" . $ligne2 . "\r\n" . $ligne3 . "\r\n" . $ligne4; }
} // 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($courriel) { if(HEBERGEUR_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.'" !'); } } } $user_email_origine = ($courriel) ? 'admin' : '' ; // Insérer l'enregistrement $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur( 0 /*user_sconet_id*/ , 0 /*sconet_num*/ , '' /*reference*/ , $profil , $genre , $nom , $prenom , NULL /*user_naissance_date*/ , $courriel , $user_email_origine , $login , crypter_mdp($password) , 0 /*eleve_classe_id*/ , $id_ent , $id_gepi ); // Pour les admins, abonnement obligatoire aux contacts effectués depuis la page d'authentification DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement( $user_id , 'contact_externe' , 'accueil' ); // Afficher le retour echo'<tr id="id_'.$user_id.'" class="new">'; echo '<td>'.html($id_ent).'</td>'; echo '<td>'.html($id_gepi).'</td>'; echo '<td>'.Html::$tab_genre['adulte'][$genre].'</td>'; echo '<td>'.html($nom).'</td>'; echo '<td>'.html($prenom).'</td>'; echo '<td class="new">'.html($login).' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pensez à noter le login !" /></td>'; echo '<td class="new">'.html($password).' <img alt="" src="./_img/bulle_aide.png" width="16" height="16" title="Pensez à noter le mot de passe !" /></td>'; echo '<td>'.html($courriel).'</td>'; echo '<td class="nu">'; echo '<q class="modifier" title="Modifier cet administrateur."></q>'; echo '<q class="supprimer" title="Retirer cet administrateur."></q>';
DB_STRUCTURE_COMMUN::DB_creer_remplir_tables_structure(); // Il est arrivé que la fonction DB_modifier_parametres() retourne une erreur disant que la table n'existe pas. // Comme si les requêtes de DB_creer_remplir_tables_structure() étaient en cache, et pas encore toutes passées (parcequ'au final, quand on va voir la base, toutes les tables sont bien là). // Est-ce que c'est possible au vu du fonctionnement de la classe de connexion ? Et, bien sûr, y a-t-il quelque chose à faire pour éviter ce problème ? // En attendant une réponse de SebR, j'ai mis ce sleep(1)... sans trop savoir si cela pouvait aider... @sleep(1); // Personnaliser certains paramètres de la structure $tab_parametres = array(); $tab_parametres['version_base'] = VERSION_BASE_STRUCTURE; $tab_parametres['webmestre_uai'] = $uai; $tab_parametres['webmestre_denomination'] = $denomination; $tab_parametres['etablissement_denomination'] = $denomination; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // Insérer le compte administrateur dans la base de cette structure $password = fabriquer_mdp(); $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur(0, 0, '', 'ADM', 'I', $contact_nom, $contact_prenom, NULL, $contact_courriel, 'user', 'admin', crypter_mdp($password), 0, '', ''); // Pour les admins, abonnement obligatoire aux contacts effectués depuis la page d'authentification DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'contact_externe', 'accueil'); // Envoyer un courriel au contact et / ou une copie du courriel au webmestre $courriel_contenu = $courriel_envoi || $courriel_copie ? Webmestre::contenu_courriel_inscription($base_id, $denomination, $contact_nom, $contact_prenom, 'admin', $password, URL_DIR_SACOCHE) : ''; $courriel_titre = $courriel_envoi || $courriel_copie ? 'Création compte - Inscription n°' . $base_id : ''; if ($courriel_envoi) { $courriel_bilan = Sesamail::mail($contact_courriel, $courriel_titre, $courriel_contenu); if (!$courriel_bilan) { exit('Erreur lors de l\'envoi du courriel !'); } } if ($courriel_copie) { $introduction = '================================================================================' . "\r\n" . 'Copie pour information du courriel adressé à ' . $contact_courriel . "\r\n" . '================================================================================' . "\r\n\r\n"; $courriel_bilan = Sesamail::mail(WEBMESTRE_COURRIEL, $courriel_titre, $introduction . $courriel_contenu); if (!$courriel_bilan) {
DB_STRUCTURE_COMMUN::DB_creer_remplir_tables_structure(); // Il est arrivé que la fonction DB_modifier_parametres() retourne une erreur disant que la table n'existe pas. // Comme si les requêtes de DB_creer_remplir_tables_structure() étaient en cache, et pas encore toutes passées (parcequ'au final, quand on va voir la base, toutes les tables sont bien là). // Est-ce que c'est possible au vu du fonctionnement de la classe de connexion ? Et, bien sûr, y a-t-il quelque chose à faire pour éviter ce problème ? // En attendant une réponse de SebR, j'ai mis ce sleep(1)... sans trop savoir si cela pouvait aider... @sleep(1); // Personnaliser certains paramètres de la structure $tab_parametres = array(); $tab_parametres['version_base'] = VERSION_BASE_STRUCTURE; $tab_parametres['webmestre_uai'] = HEBERGEUR_UAI; $tab_parametres['webmestre_denomination'] = HEBERGEUR_DENOMINATION; $tab_parametres['etablissement_denomination'] = HEBERGEUR_DENOMINATION; DB_STRUCTURE_COMMUN::DB_modifier_parametres($tab_parametres); // Insérer un compte administrateur dans la base de la structure $password = fabriquer_mdp(); $user_id = DB_STRUCTURE_COMMUN::DB_ajouter_utilisateur(0, 0, '', 'ADM', 'I', WEBMESTRE_NOM, WEBMESTRE_PRENOM, NULL, WEBMESTRE_COURRIEL, 'user', 'admin', crypter_mdp($password), 0, '', ''); // Pour les admins, abonnement obligatoire aux contacts effectués depuis la page d'authentification DB_STRUCTURE_NOTIFICATION::DB_ajouter_abonnement($user_id, 'contact_externe', 'accueil'); // Affichage du retour $affichage .= '<p><label class="valide">Les tables de la base de données ont été installées.</label></p>' . NL; $affichage .= '<span class="astuce">Le premier compte administrateur a été créé avec votre identité :</span>' . NL; $affichage .= '<ul class="puce">'; $affichage .= '<li>nom d\'utilisateur " admin "</li>'; $affichage .= '<li>mot de passe " ' . $password . ' "</li>'; $affichage .= '</ul>' . NL; $affichage .= '<label class="alerte">Notez ces identifiants avant de poursuivre !</label>' . NL; $affichage .= '<hr />' . NL; $affichage .= '<h2>Installation logicielle terminée</h2>' . NL; $affichage .= '<p>Se connecter avec le compte webmestre : <a href="' . URL_DIR_SACOCHE . '?webmestre">' . URL_DIR_SACOCHE . '?webmestre</a></p>' . NL; $affichage .= '<p>Se connecter avec le compte administrateur : <a href="' . URL_DIR_SACOCHE . '">' . URL_INSTALL_SACOCHE . '</a></p>' . NL; } elseif (HEBERGEUR_INSTALLATION == 'multi-structures') {