aboutsummaryrefslogtreecommitdiff
path: root/public/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/index.php')
-rw-r--r--public/index.php78
1 files changed, 78 insertions, 0 deletions
diff --git a/public/index.php b/public/index.php
new file mode 100644
index 0000000..37ebaf0
--- /dev/null
+++ b/public/index.php
@@ -0,0 +1,78 @@
1<?php
2// public/index/php
3
4/* installation de composer sur un hébergement mutualisé
51. télécharger le script d'installation:
6php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
72. installation: php composer-setup.php
83. supprimer l'installateur: php -r "unlink('composer-setup.php');"
94. utilisation: php composer.phar */
10
11declare(strict_types=1);
12
13// -- prétraitement --
14// une nouvelle classe? taper: composer dump-autoload -o
15require "../vendor/autoload.php";
16
17// configuration possible par l'utilisateur
18Config::load('../config/config.ini');
19
20// les messages d'erreur de déploiement qu'on aime
21require('../src/controller/installation.php');
22//installation(); // des mkdir et chmod, chiant en dev
23
24// $entityManager
25require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter
26
27URL::setProtocol(Config::$protocol); // utile si port autre que 80 ou 443
28URL::setPort(Config::$port);
29URL::setHost(Config::$host);
30
31//require('controller/Session.php');
32ini_set('session.cookie_samesite', 'Strict');
33ini_set('session.cookie_httponly', 'On');
34ini_set('session.use_strict_mode', 'On');
35ini_set('session.cookie_secure', 'On');
36session_start();
37$_SESSION['admin'] = !isset($_SESSION['admin']) ? false : $_SESSION['admin']; // intialisation sur faux
38
39// login, mot de passe et captcha
40require '../src/controller/password.php';
41existUsers($entityManager);
42
43// -- navigation avec les GET --
44$current_page = 'accueil';
45if(!empty($_GET['page']))
46{
47 $current_page = htmlspecialchars($_GET['page']);
48}
49define('CURRENT_PAGE', $current_page);
50
51// -- traitement des POST (formulaires et AJAX) --
52require '../src/controller/post.php';
53
54// id des articles
55$id = '';
56if(!empty($_GET['id']))
57{
58 //$id = (int)$_GET['id']; // (int) = moyen basique d'éviter les injections
59 $id = Security::secureString($_GET['id']);
60}
61
62if(isset($_GET['action']) && $_GET['action'] === 'deconnexion')
63{
64 disconnect($entityManager);
65}
66elseif(isset($_GET['action']) && $_GET['action'] === 'modif_mdp')
67{
68 changePassword($entityManager);
69}
70
71// -- contrôleurs --
72$director = new Director($entityManager);
73$director->makeRootNode($id);
74$node = $director->getRootNode();
75
76// -- vues --
77$view_builder = new ViewBuilder($node);
78echo $view_builder->render(); // et voilà!