index2.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. // Application web.
  3. // Démarrage de la session
  4. session_start();
  5. define("LIBERATIONSWEB", 20091223);
  6. //Librairie de fonctions
  7. require (__DIR__ . '/vendor/autoload.php');
  8. require_once("lib/libconfig.inc.php");
  9. require_once("lib/libsession.inc.php");
  10. require_once("lib/libfonctions.inc.php");
  11. require_once("lib/libmysql.inc.php");
  12. require_once("lib/libencode.inc.php");
  13. require_once("lib/libforms.inc.php");
  14. require_once("lib/libcourriel.inc.php");
  15. require_once("lib/libliberations.inc.php");
  16. require_once("lib/lib2fa.inc.php");
  17. require_once("lib/libcentrale.inc.php");
  18. $etatsession = isValidSession();
  19. //Cueillette de données du formulaire
  20. if ($etat == "service") {
  21. $page = "service";
  22. } else {
  23. if (!empty(filter_input(INPUT_POST, "page"))) {
  24. $page = antiInjection(filter_input(INPUT_POST, "page"));
  25. } elseif (!empty(filter_input(INPUT_GET, "page"))) {
  26. $page = antiInjection(filter_input(INPUT_GET, "page"));
  27. } else {
  28. $page = "";
  29. }
  30. }
  31. // Si ouverture dans une nouvelle fenêtre
  32. switch ($page) {
  33. case "compilation_documents":
  34. case "compilation_soldes":
  35. $jeton = $_SESSION['jeton'];
  36. break;
  37. default:
  38. if ($etatsession == -2) {
  39. header("Location:index.php");
  40. } elseif ($etatsession == -4) {
  41. $page = "profil";
  42. } elseif ($etatsession != 1) {
  43. fermeSessionUtilisateur($etatsession);
  44. }
  45. //Regénération du jeton de sécurité
  46. $jeton = prepareToken();
  47. $_SESSION['jeton'] = $jeton;
  48. break;
  49. }
  50. filterInputValue();
  51. unset($modesqlmaitre);
  52. //Reste sur la page profil si le token 2fa n'est pas spécifié.
  53. //Reste sur la page profil si le mot de passe est temporaire n'a pas été changé.
  54. $page = checkprofil(strtolower($page));
  55. buildConfigCentrale();
  56. $page2 = "";
  57. switch ($page) {
  58. //Fichiers du menu
  59. case "compilation_documents":
  60. case "compilation_soldes":
  61. case "generateur_rapports":
  62. case "liste_articles":
  63. case "liste_employes":
  64. case "liste_employeurs":
  65. case "liste_liberations":
  66. case "liste_lieuxtravail":
  67. case "liste_nombre_employes":
  68. //TODO vérifier l'utilisation
  69. //case "liste_paiements":
  70. case "liste_periodes":
  71. case "parametres_centrale":
  72. case "profil":
  73. case "retrait_liberations":
  74. case "utilitaires":
  75. $page2 = $page . ".inc.php";
  76. $log_action = "Accès à la page";
  77. break;
  78. case "copie_sauvegarde":
  79. case "execute_copie_db1":
  80. case "execute_copie_db2":
  81. $page2 = "./back_db/" . $page . ".inc.php";
  82. $log_action = "Accès à la page";
  83. break;
  84. case "liste_utilisateurs":
  85. $modesqlmaitre = true;
  86. $page2 = $page . ".inc.php";
  87. $log_action = "Gestion des utilisateurs";
  88. break;
  89. //En période de mise à jour et d'entretien.
  90. case "service":
  91. $page2 = "service.inc.php";
  92. break;
  93. //Fermeture de l'application
  94. case "fermer":
  95. $page2 = $page . ".inc.php";
  96. $log_action = "Fermeture de l'application";
  97. break;
  98. //Autres fichiers
  99. default :
  100. $page2 = "menuadm.inc.php";
  101. $log_action = "Menu principal";
  102. break;
  103. }
  104. // Prépare les headers de la session du navigateur
  105. print prepareSession();
  106. // Page actuelle
  107. $SCRIPT_NAME = filter_input(INPUT_SERVER, 'SCRIPT_NAME');
  108. //Mise à jour des infos de l'utilisateur
  109. updateSessionUtilisateur($page2, $log_action);
  110. //Ne doit pas être en gestion des utilisateurs
  111. if (!isset($modesqlmaitre)) {
  112. setConnectionSql();
  113. }
  114. // Tri
  115. // ---
  116. if (!isset($tri)) {
  117. unset($tri);
  118. //TODO vérifier si le input_get sera nécessaire
  119. $tri = (filter_input(INPUT_POST, "tri") !== "" && is_numeric(filter_input(INPUT_POST, "tri"))) ? antiInjection(filter_input(INPUT_POST, "tri")) : 1;
  120. }
  121. // Flèche du tri
  122. // -------------
  123. if (!isset($dir)) {
  124. unset($dir, $flechetri);
  125. $flechetri = false;
  126. //TODO vérifier si le input_get est nécessaire
  127. if (filter_input(INPUT_POST, "dir") !== "") {
  128. $dir = filter_input(INPUT_POST, "dir");
  129. if ($dir != "asc" && $dir != "desc") {
  130. $dir = "asc";
  131. }
  132. } else {
  133. $dir = "asc";
  134. }
  135. } else {
  136. if ($dir == "asc" || $dir == "desc") {
  137. $flechetri = true;
  138. }
  139. }
  140. // ---------------------------------
  141. // Nombre maximal de lignes par page
  142. // ---------------------------------
  143. if (!isset($nombreaffiche)) {
  144. $nombreaffiche = 15;
  145. }
  146. if (!in_array($nombreaffiche, array(15, 30, 45, 60, 120, 240))) {
  147. $nombreaffiche = 15;
  148. }
  149. if (!isset($nopage)) {
  150. unset($nopage);
  151. if (filter_input(INPUT_POST, "nopage", FILTER_SANITIZE_NUMBER_INT)) {
  152. $nopage = intval(filter_input(INPUT_POST, "nopage", FILTER_SANITIZE_NUMBER_INT));
  153. } else {
  154. $nopage = 1;
  155. }
  156. } else {
  157. if (!is_numeric($nopage) || $nopage < 1) {
  158. $nopage = 1;
  159. }
  160. }
  161. print " <script type=\"text/javascript\">\n";
  162. print " self.name=\"index2\";\n";
  163. print " </script>\n";
  164. print " </HEAD>\n";
  165. print " <body>\n";
  166. print " ";
  167. // Inclusion de la page enfant, ex: menu
  168. require($page2);
  169. //Pied de page
  170. print "<br><br> ";
  171. print "<noscript>\n";
  172. print " <div style=\"text-align:center; color:#ff0000;\">\n";
  173. print " Vous devez autoriser l'exécution du code Javascript dans votre navigateur.\n";
  174. print " <br>\n";
  175. print " Sans ceci, plusieurs fonctionnalités seront manquantes et des erreurs pourraient survenir.\n";
  176. print " </div>\n";
  177. print "</noscript>\n";
  178. print "<script type='text/javascript'>";
  179. print " $(document).ready(function() {";
  180. print " demarreHorloge();";
  181. print " });";
  182. print "</script>";
  183. print "</BODY>\n";
  184. print "</HTML>";