diff --git a/php/composer.json b/php/composer.json index 47ef02d..01808c9 100644 --- a/php/composer.json +++ b/php/composer.json @@ -1,7 +1,8 @@ { "require": { "twig/twig": "^3.0", - "ext-pdo": "*" + "ext-pdo": "*", + "ext-fileinfo": "*" }, "autoload": { "psr-4": { diff --git a/php/scripts/creerOffre.js b/php/scripts/creerOffre.js deleted file mode 100644 index c0c169e..0000000 --- a/php/scripts/creerOffre.js +++ /dev/null @@ -1,32 +0,0 @@ -// change la possibilité d'entrer une ville pour l'offre -// cas où l'offre est à pourvoir en full remote -document.getElementById("fullRemote").addEventListener("change", function () { - var villeInput = document.getElementById("ville"); - villeInput.disabled = this.checked; - //var ville = document.getElementById('') -}); - -document.addEventListener("DOMContentLoaded", function() { - const form = document.querySelector("form"); - const submitButton = document.querySelector('input[type="submit"]'); - - // Fonction pour vérifier si tous les champs du formulaire sont remplis - function checkFormFields() { - const inputs = form.querySelectorAll('input, textarea, select'); - let allFieldsFilled = true; - - inputs.forEach(function(input) { - if (!input.value) { - allFieldsFilled = false; - } - }); - - submitButton.disabled = !allFieldsFilled; - } - - // Écoute les événements de saisie dans les champs du formulaire - form.addEventListener("input", checkFormFields); - - // Appelle la fonction initiale pour la première vérification - checkFormFields(); -}); diff --git a/php/src/controleur/UtilisateurControleur.php b/php/src/controleur/UtilisateurControleur.php index 556897c..32779df 100755 --- a/php/src/controleur/UtilisateurControleur.php +++ b/php/src/controleur/UtilisateurControleur.php @@ -9,6 +9,7 @@ use App\metier\Image; use App\modele\OffreModele; use App\modele\ImageModele; use App\TwigExtensions; +use finfo; class UtilisateurControleur { @@ -128,16 +129,30 @@ class UtilisateurControleur } } if (isset($_FILES['image'])) { - $imgMdl = new ImageModele; - $offerMdl = new OffreModele(); - $img = $imgMdl->publierImage(); - $offer = $offerMdl->publishOffers($img); - $id = $offer->getImgId(); - //echo $twig->render("index.php?action=displayOffer&id=${id}",[]); - return; + $typesMime = array('image/jpeg', 'image/png', 'image/gif', 'image/bmp'); + + $file = $_FILES['image']['tmp_name']; + + $mime = mime_content_type($file); + + if (in_array($mime, $typesMime)) { + $imgMdl = new ImageModele; + $img = $imgMdl->publierImage(); + $offerMdl = new OffreModele(); + $offer = $offerMdl->publishOffers($img); + $id = $offer->getImgId(); + // TO DO Afficher vue succès + //echo $twig->render("index.php?action=displayOffer&id=${id}",[]); + return; + } + else + { + $imgName = $_FILES['image']['name']; + echo $twig->render("CreerOffre.html", ['errMsg' => "Image {$imgName} non valide !" ]); + return; + } } - //$twig->render("CreerOffre.html", ['errMsg' => 'Inserez une image !']); - echo $twig->render("CreerOffre.html",['errMsg' => "message erreur test"]); + echo $twig->render("CreerOffre.html",[]); } protected function testAction() diff --git a/php/templates/CreerOffre.html b/php/templates/CreerOffre.html index ead056c..f7bcabb 100644 --- a/php/templates/CreerOffre.html +++ b/php/templates/CreerOffre.html @@ -17,23 +17,25 @@
+ {% if errMsg is defined %}

{{errMsg}}

+ {% endif %}

Les champs contenant des astrérisques * sont obligatoires.

- +
- +
- - + +
@@ -58,12 +60,12 @@
- +
- +
@@ -98,17 +100,17 @@
- +
- +
- +
@@ -121,8 +123,7 @@ - - - + +