Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 16h05   #1
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Par défaut Variable $_FILES vide

J'ai un petit souci dont je ne trouve pas l'origine.

J'ai un formulaire avec un champ de type file et au traitement de ce formulaire, les variables $_FILES ne sont pas valorisées ( => un print_r($_FILES) donne Array ( ) soit le vide complet).

Mon formulaire contient bien le enctype :

Code :
<form name='f_page' method='POST' enctype='multipart/form-data'>
mon input file est créé via du javascript :

Code :
1
2
3
4
5
6
7
8
// Parcourir
td = document.createElement('td');
input = document.createElement('input');
input.name = 'f_fichier';
input.id = 'f_fichier';
input.type = 'file';
td.appendChild(input);
tr.appendChild(td);
et $_POST['f_fichier'] me renvoi bien le nom du fichier passé dans le champ (enfin, le chemin+fichier sous IE et le fichier seulement sous firefox...).

Si quelqu'un a une piste, je suis preneur.

Merci d'avance.
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 16h17   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 817
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 817
Points : 3 442
Points : 3 442
J'ai essayé de reproduire le bug avec les éléments que tu as fourni :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
 
echo '$_FILES = ' ;
print_r($_FILES) ;
 
?>
 
<script>
window.onload = function( )
{
    // Parcourir
    input = document.createElement('input');
    input.name = 'f_fichier';
    input.id = 'f_fichier';
    input.type = 'file';
    document.getElementById("myForm").appendChild(input) ;
}
</script>
 
<form method="post" enctype="multipart/form-data" id="myForm">
<input type="submit">
</form>
... mais sans succès, ça fonctionne correctement.

J'obtiens sous Firefox :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
$_FILES = Array
(
    [f_fichier] => Array
        (
            [name] => ND.jpg
            [type] => image/jpeg
            [tmp_name] => C:\WINDOWS\Temp\phpCF.tmp
            [error] => 0
            [size] => 431
        )
 
)
Essaie d'élaguer ton script davantage.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 16h43   #3
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Effectivement, en testant ton cas, ça fonctionne.

Si je rajoute un bouton submit et une action au niveau du form vers mon fichier de traitement, $_FILES est bien renseigné.

Dans le cas qui ne fonctionne pas, je passe par la génération d'un formulaire de copie et que je lance le submit par la suite ( via formulaire_copie.submit(); ). Je vais chercher de ce côté même si la gestion du champ file semblait fonctionner sur une autre page.

Merci pour l'aide. Je vous tiens au courant.
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 10h53   #4
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Le problème venait bien de la génération du formulaire de copie qui gère mal les champs de type file.

Du coup je fais autrement pour les cas avec un champ de ce type et maintenant tout fonctionne
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h28.


 
 
 
 
Partenaires

Hébergement Web