123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- <?php
- // Application web.
- // Démarrage de la session
- session_start();
- define("LIBERATIONSWEB", 20091223);
- //Librairie de fonctions
- require (__DIR__ . '/vendor/autoload.php');
- require_once("lib/libconfig.inc.php");
- require_once("lib/libsession.inc.php");
- require_once("lib/libfonctions.inc.php");
- require_once("lib/libmysql.inc.php");
- require_once("lib/libencode.inc.php");
- require_once("lib/libforms.inc.php");
- require_once("lib/libcourriel.inc.php");
- require_once("lib/libliberations.inc.php");
- require_once("lib/lib2fa.inc.php");
- require_once("lib/libcentrale.inc.php");
- $etatsession = isValidSession();
- //Cueillette de données du formulaire
- if ($etat == "service") {
- $page = "service";
- } else {
- if (!empty(filter_input(INPUT_POST, "page"))) {
- $page = antiInjection(filter_input(INPUT_POST, "page"));
- } elseif (!empty(filter_input(INPUT_GET, "page"))) {
- $page = antiInjection(filter_input(INPUT_GET, "page"));
- } else {
- $page = "";
- }
- }
- // Si ouverture dans une nouvelle fenêtre
- switch ($page) {
- case "compilation_documents":
- case "compilation_soldes":
- $jeton = $_SESSION['jeton'];
- break;
- default:
- if ($etatsession == -2) {
- header("Location:index.php");
- } elseif ($etatsession == -4) {
- $page = "profil";
- } elseif ($etatsession != 1) {
- fermeSessionUtilisateur($etatsession);
- }
- //Regénération du jeton de sécurité
- $jeton = prepareToken();
- $_SESSION['jeton'] = $jeton;
- break;
- }
- filterInputValue();
- unset($modesqlmaitre);
- //Reste sur la page profil si le token 2fa n'est pas spécifié.
- //Reste sur la page profil si le mot de passe est temporaire n'a pas été changé.
- $page = checkprofil(strtolower($page));
- buildConfigCentrale();
- $page2 = "";
- switch ($page) {
- //Fichiers du menu
- case "compilation_documents":
- case "compilation_soldes":
- case "generateur_rapports":
- case "liste_articles":
- case "liste_employes":
- case "liste_employeurs":
- case "liste_liberations":
- case "liste_lieuxtravail":
- case "liste_nombre_employes":
- //TODO vérifier l'utilisation
- //case "liste_paiements":
- case "liste_periodes":
- case "parametres_centrale":
- case "profil":
- case "retrait_liberations":
- case "utilitaires":
- $page2 = $page . ".inc.php";
- $log_action = "Accès à la page";
- break;
- case "copie_sauvegarde":
- case "execute_copie_db1":
- case "execute_copie_db2":
- $page2 = "./back_db/" . $page . ".inc.php";
- $log_action = "Accès à la page";
- break;
- case "liste_utilisateurs":
- $modesqlmaitre = true;
- $page2 = $page . ".inc.php";
- $log_action = "Gestion des utilisateurs";
- break;
- //En période de mise à jour et d'entretien.
- case "service":
- $page2 = "service.inc.php";
- break;
- //Fermeture de l'application
- case "fermer":
- $page2 = $page . ".inc.php";
- $log_action = "Fermeture de l'application";
- break;
- //Autres fichiers
- default :
- $page2 = "menuadm.inc.php";
- $log_action = "Menu principal";
- break;
- }
- // Prépare les headers de la session du navigateur
- print prepareSession();
- // Page actuelle
- $SCRIPT_NAME = filter_input(INPUT_SERVER, 'SCRIPT_NAME');
- //Mise à jour des infos de l'utilisateur
- updateSessionUtilisateur($page2, $log_action);
- //Ne doit pas être en gestion des utilisateurs
- if (!isset($modesqlmaitre)) {
- setConnectionSql();
- }
- // Tri
- // ---
- if (!isset($tri)) {
- unset($tri);
- //TODO vérifier si le input_get sera nécessaire
- $tri = (filter_input(INPUT_POST, "tri") !== "" && is_numeric(filter_input(INPUT_POST, "tri"))) ? antiInjection(filter_input(INPUT_POST, "tri")) : 1;
- }
- // Flèche du tri
- // -------------
- if (!isset($dir)) {
- unset($dir, $flechetri);
- $flechetri = false;
- //TODO vérifier si le input_get est nécessaire
- if (filter_input(INPUT_POST, "dir") !== "") {
- $dir = filter_input(INPUT_POST, "dir");
- if ($dir != "asc" && $dir != "desc") {
- $dir = "asc";
- }
- } else {
- $dir = "asc";
- }
- } else {
- if ($dir == "asc" || $dir == "desc") {
- $flechetri = true;
- }
- }
- // ---------------------------------
- // Nombre maximal de lignes par page
- // ---------------------------------
- if (!isset($nombreaffiche)) {
- $nombreaffiche = 15;
- }
- if (!in_array($nombreaffiche, array(15, 30, 45, 60, 120, 240))) {
- $nombreaffiche = 15;
- }
- if (!isset($nopage)) {
- unset($nopage);
- if (filter_input(INPUT_POST, "nopage", FILTER_SANITIZE_NUMBER_INT)) {
- $nopage = intval(filter_input(INPUT_POST, "nopage", FILTER_SANITIZE_NUMBER_INT));
- } else {
- $nopage = 1;
- }
- } else {
- if (!is_numeric($nopage) || $nopage < 1) {
- $nopage = 1;
- }
- }
- print " <script type=\"text/javascript\">\n";
- print " self.name=\"index2\";\n";
- print " </script>\n";
- print " </HEAD>\n";
- print " <body>\n";
- print " ";
- // Inclusion de la page enfant, ex: menu
- require($page2);
- //Pied de page
- print "<br><br> ";
- print "<noscript>\n";
- print " <div style=\"text-align:center; color:#ff0000;\">\n";
- print " Vous devez autoriser l'exécution du code Javascript dans votre navigateur.\n";
- print " <br>\n";
- print " Sans ceci, plusieurs fonctionnalités seront manquantes et des erreurs pourraient survenir.\n";
- print " </div>\n";
- print "</noscript>\n";
- print "<script type='text/javascript'>";
- print " $(document).ready(function() {";
- print " demarreHorloge();";
- print " });";
- print "</script>";
- print "</BODY>\n";
- print "</HTML>";
|