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 :

php Notice: Undefined index:


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 89
    Points : 82
    Points
    82
    Par défaut php Notice: Undefined index:
    Bonjour,

    j'ai un formulaire d'upload de fichier qui me retourne cette notice :
    php Notice: Undefined index:fichier
    fichier étant le nom du champs de type file ou je sélectionne le fichier a charger.

    le code qui me retourne l'erreur est celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $fichier = $_POST["fichier"];
    Si je test avant la présence de la variable avec isset, le fichier n'est pas uploader...bon c'est qu'une notice non affiché en prod mais tant qu'a faire, j'aimerai corriger ça.

    je test ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST["fichier"]))
    				{
    					$fichier = $_POST["fichier"];	
    				}
    Merci pour votre aide.

  2. #2
    Membre éclairé
    Avatar de bricecol
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 364
    Points : 654
    Points
    654
    Par défaut
    Ton test est bon. Par contre, si tu essaies d'utiliser $fichier après, c'est normal que cela ne marche pas car tu dois déclarer cette variable avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fichier = '';
    if (isset($_POST['fichier'])
      $fichier = $_POST['fichier'];

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 89
    Points : 82
    Points
    82
    Par défaut
    hum pas mieux..

    tout ce qui se trouve dans la condition n'est pas exécuter.
    pour donner plus de détails voici le formulaire ou je sélectionne le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <form method="post" action="suivie.php"  ENCTYPE="multipart/form-data">
    <select name="operateur">
    	 			<option value="exa">EXAPAQ</option>
    	 			<option value="ups">UPS</option>
    	 			<option value="tat">TAT</option>
    </select>
    <input type="file" name="fichier">
    <input type="submit" value="Importer" class="bt1">
    </form>
    et la partie de code ou je dois normalement uploader le fichier.

    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
     
    else if ($_POST["operateur"]=="tat")
    		{
     
    $fichier = "";
    			if (isset($_POST["fichier"]))
    				{
    					$fichier = $_POST["fichier"];
    					echo $pathFile = "importTat/";
    					$result = uploadFile($fichier,$pathFile);	
    					$fileName = $result[0];
     
    				}
     
     
    		}
    si je supprime le if isset, j'ai toujours l'erreur de notice mais mon fichier est bien uploader.
    code sans le isset :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $fichier = "";
    					$fichier = $_POST["fichier"];
    					echo $pathFile = "importTat/";
    					$result = uploadFile($fichier,$pathFile);	
    					$fileName = $result[0];
    Erreur certes mineur mais comme dit, tant qu'a faire, autant l'éviter.

    Merci,

  4. #4
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    @bricecol
    en PHP,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $fichier = '';
    if (isset($_POST['fichier'])
      $fichier = $_POST['fichier'];
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (isset($_POST['fichier'])
      $fichier = $_POST['fichier'];
    ne sont pas différent.

    @DaYonyon
    c'est pas de cette manière qu'on récupère les fichiers avec PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (isset($_FILES['fichier'])
      $fichier = $_FILES['fichier'];
    // et la suite
    Un peu de lecture http://julp.developpez.com/php/formulaires/
    Merci de respecter les standards
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="suivie.php"  enctype="multipart/form-data">

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Attention ! les champs de type file n'envoient leurs données dans $_POST mais dans $_FILES !
    upload de fichier en php
    Chargements de fichiers par méthode POST
    peut-être que jeter un coup d'oeil au contenu de ta fonction uploadFile serait une bonne idée...

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 89
    Points : 82
    Points
    82
    Par défaut
    marf oui c'est ça...

    bon du coup vais faire le ménage car je n'ai pas besoin du $fichier = $_POST(ou $_FILES) car tout est dans ma fonction. Le pire c'est que dans ma fonction j'appel bien $_FILES ...
    Je devais être fatiguer ce jour la :p

    voici la fonction au passage.
    J'ai supprimer la variable $fichier car en fait je ne l'utilise pas ...

    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
     
    function uploadFile($dest)
    	{
     
    		  	$content_dir = $dest;
    		    $tmp_file = $_FILES['fichier']['tmp_name'];		   
    		   	$type_file = $_FILES['fichier']['type'];		    
    		   	$name_file = $_FILES['fichier']['name'];		
     
    		    if( !is_uploaded_file($tmp_file) )
    			    {
    			        exit("Le fichier est introuvable");
    			    }
    			sleep(5);
    		    if(substr($name_file,-3) != "doc" && substr($name_file,-3) != "xls" && substr($name_file,-3) != "csv" && substr($name_file,-3) != "CSV"  && !strstr($type_file, 'text/plain') && !strstr($type_file, 'application/vnd.ms-excel') && substr($name_file,-3) != "txt" && !strstr($type_file, 'text/xml'))
    		    {
    		        exit("Mauvais type de fichier. Seul les fichiers EXCEL et TEXTE sont autoriser");
    		    }
     
    		    if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
    			{
    			    exit("Nom de fichier non valide");
    			}
     
    			else if( !move_uploaded_file($tmp_file, $content_dir.$name_file) )
    			{
    			    exit("Impossible de copier le fichier dans $content_dir");
    			}
     
     
    		    //$result =  "Le fichier a bien été uploadé sous le nom $name_file";
    		    return array($name_file);
     
     
    	}
    Merci

    @thes32 promis je vais essayer de respecter le standard :p

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

Discussions similaires

  1. aide pour facture sous php : Notice: Undefined index
    Par le beauceron dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2012, 23h15
  2. [PHP-JS] Problème Notice: Undefined index
    Par Sniper94-2 dans le forum Langage
    Réponses: 1
    Dernier message: 19/04/2007, 16h45
  3. Réponses: 8
    Dernier message: 03/04/2007, 10h01
  4. Réponses: 9
    Dernier message: 01/05/2006, 00h02
  5. [Php] error : Undefined index: MyBrainFound
    Par cyrill.gremaud dans le forum Langage
    Réponses: 3
    Dernier message: 14/02/2006, 11h39

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