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à! | ||
