index.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. require_once '../vendor/autoload.php';
  3. require_once __DIR__ . '/../src/controllers/user.php';
  4. function get_view($view_name) {
  5. try {
  6. $loader = new Twig\Loader\FilesystemLoader('../templates');
  7. $twig = new Twig\Environment($loader);
  8. $twig->addGlobal('session', $_SESSION);
  9. return $twig->load($view_name . '.html.twig');
  10. } catch (Exception $e) {
  11. die ('ERROR: ' . $e->getMessage());
  12. }
  13. }
  14. $dispatcher = FastRoute\simpleDispatcher(function(FastRoute\RouteCollector $r) {
  15. $r->addRoute('GET', '/', 'signin');
  16. $r->addRoute('POST', '/auth', 'auth');
  17. $r->addRoute('GET', '/home', 'home');
  18. $r->addRoute('GET', '/changepassword', 'form_password');
  19. $r->addRoute('POST', '/changepassword', 'change_password');
  20. $r->addRoute('GET', '/signout', 'signout');
  21. });
  22. // Fetch method and URI from somewhere
  23. $httpMethod = $_SERVER['REQUEST_METHOD'];
  24. $uri = $_SERVER['REQUEST_URI'];
  25. // Strip query string (?foo=bar) and decode URI
  26. if (false !== $pos = strpos($uri, '?')) {
  27. $uri = substr($uri, 0, $pos);
  28. }
  29. $uri = rawurldecode($uri);
  30. $routeInfo = $dispatcher->dispatch($httpMethod, $uri);
  31. switch ($routeInfo[0]) {
  32. case FastRoute\Dispatcher::NOT_FOUND:
  33. // ... 404 Not Found
  34. break;
  35. case FastRoute\Dispatcher::METHOD_NOT_ALLOWED:
  36. $allowedMethods = $routeInfo[1];
  37. // ... 405 Method Not Allowed
  38. break;
  39. case FastRoute\Dispatcher::FOUND:
  40. $handler = $routeInfo[1];
  41. $handler();
  42. break;
  43. }