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 :

Problème avec if(isset($_FILES['monfichier']))


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut Problème avec if(isset($_FILES['monfichier']))
    Bonjour,

    j'ai un formulaire d'upload pour 4 images, chacun de ces champs est verifier par 4 scripts et chacun de mes 4 script commence par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_FILES['monfichier']))
    le probleme est que si je poste pas de photos le code est quant meme traiter et il m'affiche toute les message d'erreure des 4 scripts...
    visiblement avec ce début de code il croit que un fichier a été posté alors que pas du tout n'y aurait t'il pas une autre oslution pour que le code puisse voir si oui ou non un fichier a té posté s'il vous plait ?

    voici mon code :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    // ********************************************************************************************
    // Envoi de la photo 1
    if(isset($_FILES['TB_photo1']))
    {
      // params
      unset($erreur1);
      $extensions_ok1 = array('png', 'gif', 'jpg', 'jpeg');
      $taille_ko1 = 1024;
      $taille_max1 = $taille_ko1*1024;
      $dest_dossier1 = '/home/user/monsite.com/images_membres/';
      // vérifications
      if( !in_array( substr(strrchr($_FILES['TB_photo1']['name'], '.'), 1), $extensions_ok1 ) )
      {
        $erreur1 = 'Veuillez sélectionner un fichier de type png, gif ou jpg pour la photo 1 !';  
      }
      elseif( file_exists($_FILES['TB_photo1']['tmp_name']) 
              and filesize($_FILES['TB_photo1']['tmp_name']) > $taille_max1)
      {
        $erreur1 = 'Votre photo 1 doit faire moins de 500Ko !';
      }
      // copie du fichier
      if(!isset($erreur1))
      {
        $dest_fichier1 = basename($_FILES['TB_photo1']['name']);
     
     
    	//Créer un identifiant difficile à deviner
        $new_name1 = md5(uniqid(rand(), true));
     
    	// formatage nom fichier
        // enlever les accents
        $dest_fichier1 = strtr($dest_fichier1, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     
        // remplacer les caracteres autres que lettres, chiffres et point par _
        $dest_fichier1 = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier1);
     
        // copie du fichier
    	move_uploaded_file($_FILES['TB_photo1']['tmp_name'], $dest_dossier1.$new_name1.$dest_fichier1);
     
      }
    }
     
    // Fin de l'envoi photo 1
    // ********************************************************************************************
    merci par avance de votre aide
    cordialement

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Votre méthodologie est erronée car fichier ou non, ce genre de test sera toujours vrai. Par contre, PHP via le champ error de ce tableau vous indiquera l'absence de fichier (cette variable prenant la valeur UPLOAD_ERR_NO_FILE dans ce cas précis).

    Il y a un certain nombre de discussions similaires (dont, par exemple, Si upload fichier alors la suite).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Points : 15
    Points
    15
    Par défaut
    merci juip de votre aide, c'est effectivement un peu ce qui me semblait, je vous rejoint la dessus et comprend mieu maintenant. Cepandent j'ai résolut mon probleme en ajoutant "if filexist" et ca marche tres bien le script ne continue que si le fichier exist sinon il ne s'execute pas.
    merci de votre aide juip

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec $_FILES
    Par sliverman dans le forum Langage
    Réponses: 19
    Dernier message: 07/06/2010, 12h22
  2. problème avec isset
    Par arnaud_verlaine dans le forum Langage
    Réponses: 3
    Dernier message: 21/08/2006, 14h50
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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