Formulaire : image par défaut si il n'y a pas d'envoi d'image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire : image par défaut si il n'y a pas d'envoi d'image

Re: Formulaire : image par défaut si il n'y a pas d'envoi d'image

par @rthur » 13 sept. 2024, 19:40

Quel est le message d'erreur ?

Formulaire : image par défaut si il n'y a pas d'envoi d'image

par olill » 13 sept. 2024, 12:05

Bonjour,

Dans un formulaire, je demande d'envoyer une image.
Au début, je mettais une alerte avec la phrase "pas d'image envoyée" mais les utilisateurs aimeraient avoir une image par défaut s'ils n'ont pas de bonne photo.

Voici mon code :

Code : Tout sélectionner

if(isset($_POST["sub"])) { // (lignes précédentes retirées) $image_file = $_FILES["image"]; echo 'Vérification de l\'envoi d\'image : ' . $image_file["name"] . ' <br> '; // affiche le nom d'image envoyé $imageavirer = $image_file["name"]; // met le nom de l'image en variable pour suppression ultérieure // Pas d'image, on affiche l'erreur if (!isset($image_file)) { echo '<h3>Pas d´image envoyée</h3>'; die('No file uploaded.'); } if ($image_file["name"]) { echo 'OK Image envoyée !'; } else { $citation_1 = '1 <img src = "https://mondomaine.tld/images/oups.png">'; $citation_2 = '2 <img src = "https://mondomaine.tld/images/oups2.png">'; echo 'Pas d`image<br>'; echo ${'citation_' . rand(1, 2)}; // on affichera une image aléatoire pour signaler l'erreur } // Déplacement de l'image envoyée move_uploaded_file( // emplacement temporaire $image_file["tmp_name"], // Nouvel emplacement, __DIR__ est le dossier actuel __DIR__ . "/images/" . $image_file["name"] ); $filename = 'images/'.$image_file["name"]; if(exif_imagetype($filename) == IMAGETYPE_GIF) { // Conversion gif en PNG $new_png_img = 'user_image.png'; $png_img = imagepng(imagecreatefromgif($filename), $new_png_img); } elseif(exif_imagetype($filename) == IMAGETYPE_JPEG) { // Conversion JPG/JPEG en PNG $new_png_img = 'user_image.png'; $png_img = imagepng(imagecreatefromjpeg($filename), $new_png_img); } else { // PNG, ne rien faire $new_png_img = 'user_image.png'; } $im = imagecreatefrompng('user_image.png'); } // fin isset
Je n'arrive pas à mettre une condition : s'il n'y a pas d'image envoyée, on prend l'image fond_result_no_photo.png à la place.
A chaque fois, j'ai une erreur à la ligne 38 (exif_imagetype...)

comment faire ? Merci