diff options
Diffstat (limited to 'public/index.php')
-rw-r--r-- | public/index.php | 78 |
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é | ||
5 | 1. télécharger le script d'installation: | ||
6 | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | ||
7 | 2. installation: php composer-setup.php | ||
8 | 3. supprimer l'installateur: php -r "unlink('composer-setup.php');" | ||
9 | 4. utilisation: php composer.phar */ | ||
10 | |||
11 | declare(strict_types=1); | ||
12 | |||
13 | // -- prétraitement -- | ||
14 | // une nouvelle classe? taper: composer dump-autoload -o | ||
15 | require "../vendor/autoload.php"; | ||
16 | |||
17 | // configuration possible par l'utilisateur | ||
18 | Config::load('../config/config.ini'); | ||
19 | |||
20 | // les messages d'erreur de déploiement qu'on aime | ||
21 | require('../src/controller/installation.php'); | ||
22 | //installation(); // des mkdir et chmod, chiant en dev | ||
23 | |||
24 | // $entityManager | ||
25 | require '../src/model/doctrine-bootstrap.php'; // isDevMode est sur "true", DSN à adapter | ||
26 | |||
27 | URL::setProtocol(Config::$protocol); // utile si port autre que 80 ou 443 | ||
28 | URL::setPort(Config::$port); | ||
29 | URL::setHost(Config::$host); | ||
30 | |||
31 | //require('controller/Session.php'); | ||
32 | ini_set('session.cookie_samesite', 'Strict'); | ||
33 | ini_set('session.cookie_httponly', 'On'); | ||
34 | ini_set('session.use_strict_mode', 'On'); | ||
35 | ini_set('session.cookie_secure', 'On'); | ||
36 | session_start(); | ||
37 | $_SESSION['admin'] = !isset($_SESSION['admin']) ? false : $_SESSION['admin']; // intialisation sur faux | ||
38 | |||
39 | // login, mot de passe et captcha | ||
40 | require '../src/controller/password.php'; | ||
41 | existUsers($entityManager); | ||
42 | |||
43 | // -- navigation avec les GET -- | ||
44 | $current_page = 'accueil'; | ||
45 | if(!empty($_GET['page'])) | ||
46 | { | ||
47 | $current_page = htmlspecialchars($_GET['page']); | ||
48 | } | ||
49 | define('CURRENT_PAGE', $current_page); | ||
50 | |||
51 | // -- traitement des POST (formulaires et AJAX) -- | ||
52 | require '../src/controller/post.php'; | ||
53 | |||
54 | // id des articles | ||
55 | $id = ''; | ||
56 | if(!empty($_GET['id'])) | ||
57 | { | ||
58 | //$id = (int)$_GET['id']; // (int) = moyen basique d'éviter les injections | ||
59 | $id = Security::secureString($_GET['id']); | ||
60 | } | ||
61 | |||
62 | if(isset($_GET['action']) && $_GET['action'] === 'deconnexion') | ||
63 | { | ||
64 | disconnect($entityManager); | ||
65 | } | ||
66 | elseif(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); | ||
78 | echo $view_builder->render(); // et voilà! | ||