index2.php 5.6 KB

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