IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

"Undefined index" pour un upload fichier sur un formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Par défaut "Undefined index" pour un upload fichier sur un formulaire
    Bonjour,
    J'ai un soucis avec un formulaire de contact.
    Je lui ai ajouté un input pour pouvoir envoyer des fichiers, mais il me retourne cela

    Notice: Undefined index: image in /var/www/w9y6mi/www/beta/handler.php on line 22


    Voici une partie du code où le problème est détecté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    $validator = $pp->getValidator();
    $validator->fields(['name','email'])->areRequired()->maxLength(50);
    $validator->field('objet')->areRequired(120);
    $validator->field('email')->areRequired()->isEmail();
    $validator->field('message')->areRequired()->maxLength(6000);
    $validator->field('image')->areRequired();
     
     
    $target_dir = "uploads/";
    $target_file = $target_dir . basename($_FILES["image"]["name"]); // <- la ligne 22 détectée est celle ci
    $uploadOk = 1;
    $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    if(isset($_POST["submit"])) {
        $check = getimagesize($_FILES["image"]["tmp_name"]);
        if($check !== false) {
            echo "Votre fichier est conforme " . $check["mime"] . ".";
            $uploadOk = 1;
        } else {
            echo "Votre fichier n'est pas conforme.";
            $uploadOk = 0;
        }
    }
    Comment dois-je procéder pour résoudre mon problème

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Notice: Undefined index: image in /var/www/w9y6mi/www/beta/handler.php on line 22
    1- Lire et comprendre le message d'erreur
    2- Regarder dans le fichier handler.php à la ligne 22
    3- Chercher l'index "image"

    Jusque là : c'est fait.

    4- Analyser

    5- Corriger
    Dernière modification par Invité ; 25/08/2018 à 17h18.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2018
    Messages : 7
    Par défaut
    Dans mon HTML, j'ai un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" id="image" name="image">
    mais cela ne change rien à l'information retournée.
    Je l'ai crée manuellement et j'ai enlevé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $validator->field('image')->areRequired();
    dans mon php

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je recitifie...
    Je pensais qu'on en était à la "création" du formulaire, mais on est dans sa "validation".

    En fait, c'est le if(isset($_POST["submit"])) { qui est mal placé.
    Il doit être avant.
    Sinon, $_FILES n'est pas défini.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST["submit"])) {
       $target_dir = "uploads/";
       $target_file = $target_dir . basename($_FILES["image"]["name"]); // <- la ligne 22 détectée est celle ci
       $uploadOk = 1;
       $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
    ...
    N.B. $imageFileType devrait s'appeler $imageFileExt (puisque c'est l'extension du fichier)
    Cela dit, je ne vois pas où il est utilisé...

Discussions similaires

  1. script pour automatiser upload fichier sur site https
    Par ludo_93 dans le forum VBScript
    Réponses: 0
    Dernier message: 03/10/2008, 10h24
  2. Réponses: 2
    Dernier message: 19/12/2005, 20h11
  3. commande pour trouver un fichier sur le disque dur...
    Par angelevil dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 11/11/2005, 00h10
  4. Réponses: 6
    Dernier message: 08/04/2005, 03h00
  5. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo