From cdf1bda847edd3e22e9fe817a802219ad8e0f626 Mon Sep 17 00:00:00 2001 From: polo Date: Wed, 8 Sep 2021 02:09:34 +0200 Subject: vignette --- index.php | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'index.php') diff --git a/index.php b/index.php index d8e0a58..7ffcad7 100644 --- a/index.php +++ b/index.php @@ -54,13 +54,31 @@ require('controller/password.php'); installation(); +// traitement des requêtes AJAX +if(isset($_GET['action']) && isset($_GET['page']) && $_GET['action'] == 'upload_image') +{ + // et une backdoor de fermée! + if(!isset($_SESSION['admin']) || $_SESSION['admin'] != 1 || !isset($_FILES['upload']) || empty($_FILES['upload'])) + { + header('Location: index.php?erreur=image_ajax'); + } + else + { + require('model/Image.php'); + // paramètre "true" parce qu'on reçoit une requête AJAX + $Image = new Image(true); + $Image->upload(); + } + exit; // arrêt ici !! +} + // traitement des POST du ckeditor -// la fonction submitCKeditor n'affiche rien (controller/admin.php n'est pas utilisé) puis redirige sans GET +// la fonction submitCKeditor est "autonome", elle n'affiche rien puis redirige sans GET if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1 && isset($_GET['action']) && $_GET['action'] == 'submit' // trois possibilités: on a un contenu HTML ou JSON ou les deux && ((isset($_POST['contenu']) && $_POST['contenu'] != '') - || (isset($_POST['titre']) && isset($_POST['annee']) && isset($_POST['pochette'])))) + || (isset($_POST['titre']) && isset($_POST['annee'])))) { require('controller/ckeditor.php'); // traitement du POST require('lib/htmlawed/htmLawed.php'); // failles XSS @@ -94,11 +112,7 @@ if(isset($_GET['action']) && isset($_GET['page'])) } } -// le site comporte deux modes: -// le mode visiteur en "lecture seule" utilisant le contrôleur visitor.php -// le mode admin avec droits en "écriture" utilisant le contrôleur admin.php - -// contrôleur des pages en mode visiteur +// contrôleur des pages en mode visiteur (= lecture uniquement) // appelé tout le temps parce que certaines pages (accueil, menu) n'ont pas de version "admin" => à améliorer require('controller/visitor.php'); @@ -111,6 +125,7 @@ if(isset($_GET['page']) && $_GET['page'] != 'menu') // contrôleur des pages en mode admin if(isset($_SESSION['admin']) && $_SESSION['admin'] == 1) { + // contrôleur en mode admin (= lecture/écriture) require('controller/admin.php'); } else -- cgit v1.2.3