Formulaire d'upload

Résolu
Aquel Messages postés 200 Statut Membre -  
Ssylvainsab Messages postés 2892 Statut Modérateur -
Bonjour tout le monde,

Mon problème est le suivant: je n'arrive pas à vérifier si le champ de type 'file' de mon formulaire est rempli. Celui ci est toujours considéré comme vide.

Mon formulaire (en épargnant les autres champs):
<?php	
echo "
<form enctype=\"multipart/form-data\" action=\"maj_fin.php\" method=\"POST\">	
    <input name=\"fichier\" type=\"file\" size=\"35\" />
    <input type=\"submit\" value=\"Valider\" name=\"send\">
</form>
 ";
?>


Ma page de vérification:
<?php
	
if (isset($_POST['fichier']))
{
	echo 'fichier envoyé';
}
else
{
	echo 'fichier non envoyé';
}
?>


Voilà, c'est surement une question triviale pour certain mais je sèche complètement.
Merci pour celui qui voudra bien m'aider.

9 réponses

  1. oberion Messages postés 1255 Statut Membre 249
     
    Hello,
    En fait, il n'est pas consideré comme vide mais comme étant "setté" (Tu demandes un isset).
    Je ferais plutot:
    <?php
    	
    if (isset($_POST['fichier']))
    {
    if($_POST['fichier'] != null {
    	echo 'fichier envoyé';
    } else {
    echo 'fichier non envoyé';
    }
    }
    ?>


    A réindenter proprement.
    0
  2. dedale82 Messages postés 403 Statut Membre 283
     
    Salut,
    le contenu des champs file est accessible avec la variable $_FILES et non $_POST ou $_GET

    Bonne journée
    0
    1. oberion Messages postés 1255 Statut Membre 249
       
      Ah oui, tu as carrement raison...
      Au temps pour moi... :)
      0
  3. Aquel Messages postés 200 Statut Membre 10
     
    Bonjour et merci de vous intéresser à mon problème.

    Lorsque j'utilise la variable $_FILES, mon champ est toujours considéré comme rempli. J'ai aussi essayé ta méthode (que je ne saisie d'ailleur pas) Oberion et là rien ne s'affiche.

    Merci pour votre aide
    0
  4. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    Bonsoir.

    Ce ne serait pas plutôt avec :
    if(!empty($_FILES['fichier']))
    echo 'Le ficher n'est pas vide';
    0
    1. Aquel Messages postés 200 Statut Membre 10
       
      Merci Sylvain pour ton aide.
      C'est en effet toi qui a entièrement raison. J'ai testé et ça marche au poile.

      A bientôt et encore merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Aquel Messages postés 200 Statut Membre 10
     
    Oups, je reviens la qu.. basse pour te dire que malheureusement lorsque je ne rempli pas mon champ, il est de nouveau considéré comme rempli.
    Snif, fausse joie et précipitation dans ma précédente réponse.

    Autre info, lorsque j'essaye d'afficher la variable, celle-ci s'affiche: array.

    Merci à tous de m'aider
    0
  7. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    Bonsoir.

    lorsque j'essaye d'afficher la variable, celle-ci s'affiche: array.
    Apparement, php utilise les arrays (peut-être spécifique aux files), qui permettent d'organiser des données, en quelque sorte.

    Exemple :
    $societe_navigateurs=array(ie=>microsoft, firefox=>mozilla, netscape=>netscape) etc.....

    Mais je ne connais pas du tout les arrays, et je ne sais pas ce que ca vient faire la dedans (si c'est bien ca).

    Tu peux aussi essayer :
    <form action="maj_fin.php" method="post">	
        <input name="fichier" type="file" size="35" />
        <input type="submit" value="Valider" name="send">
    </form>


    Page de vérification:
    <?php
    $fichier=$_FILES['fichier'];
    
    if (!empty($fichier))
      {
    	echo 'fichier envoyé';
      }
    else
      {
    	echo 'fichier non envoyé';
      }
    ?>


    Je ne suis pas sur du tout, mais bon....
    Je vais aussi tester ca sur mon site quand j'aurais le temps, pour essayer de faire fonctionner ca.

    a plus
    0
    1. Aquel Messages postés 200 Statut Membre 10
       
      Bonjour Ssylvainsab et désolé de répondre aussi tardivement

      Ta technique parrait pour moi aussi être la bonne. Cependant, le champ est encore et toujours considéré comme rempli. Cela doit être parce que la valeur renvoyée par la variable $fichier est toujours ARRAY (même lorsque le champ est rempli d'ailleur).

      Je suis aussi de ton avis pour l'apparition de cette valaur ARRAY qui n'a rien à faire là.

      Si quelqu'un à une idée, je suis certain que ça en aiderait plus d'un.
      Merci
      0
  8. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    bonsoir.

    J'ai mis le script sur mon site, et effectivement il ne fonctionne pas.
    http://ssylvainsab.free.fr/autres/ccmsdz/upload_fichiers/

    Sinon, j'ai trouvé ceci qui pourrait t'aider :
    http://www.toutestfacile.com/php/cours/printables/PHPFacile.com-fileupload.php

    a plus
    0
  9. Aquel Messages postés 200 Statut Membre 10
     
    Bonsoir Sylvain,

    Ton lien est géniale et m'a permis de résoudre mon problème.
    Merci beaucoup

    A+

    ps: le contenu de ton site est très intéressant, ne t'arrêtes pas!
    0
  10. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    ps: le contenu de ton site est très intéressant, ne t'arrêtes pas!
    Merci beaucoup :)

    a plus
    0