JeuxOnLineForumsPlusConnectés : 186 (sites) | 440 (forums)Créer un compte
Forums divers
La Taverne
Les forums JOL > Forums divers > La Taverne > [PHP] Problème de formulaire avec fichier RSS
   
Répondre
Partager Outils Rechercher
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Question

[PHP] Problème de formulaire avec fichier

Mon probleme c'est que j'arrive pas à recupérer le fichier que je passe dans mon formulaire :

Code PHP:
$contenu .= "<form method=POST action=importg.php enctype=\"multipart/form-data\">\n";
      
$contenu .= "textfile:<br>\n";
      
$contenu .= "<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000\">\n";
      
$contenu .= "<input type=file name=\"userfile\">\n";
      
$contenu .= "<input type=submit value=Go>\n";
      
$contenu .= "</form>\n";
print(
$contenu); 
que je traite ici :
Code PHP:
if (!($HTTP_POST_FILES[userfile][tmp_name]))
        echo 
"<font color=red>Pas de fichier &agrave; ouvrir</font><br>\n";
    else
    {
       
$file=$HTTP_POST_FILES[userfile][tmp_name];

       
$upload_file file($file);
       
$texteg implode("",$upload_file);
..... 
J'utilise $HTTP_POST_FILES car j'ai une version de php qui n'utilise pas encore les nouvelles variables ($_POST, $_FILES ...)
Et j'ai a chaque fois le message Pas de fichier à ouvrir
Sachant aussi que pour faire le traitement j'ai repris des source de mon projet de fin d'année qui marchait nickel à l'IUT(serveur linux) et sur mon pc (easy php).
Là je bosse sur une machine Linux.

[edit] pour virer les \" que j'avais rajouter avant de poster, mais que ça marche pas quand meme sans
Lien direct vers le message - Vieux
Avatar de Elric l'aigri
Elric l'aigri
Bagnard
 
Avatar de Elric l'aigri
 
Tu as essayé de mettre tout ça sur le net pour voir si ça marchait ?

A priori, Easy PHP est tout sauf à jour. Si tu as de la chance, le problème vient de là.
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Re: [PHP] Problème de formulaire avec fichier
Citation:
Provient du message de Wis/Thunder

Sachant aussi que pour faire le traitement j'ai repris des source de mon projet de fin d'année qui marchait nickel à l'IUT(serveur linux) et sur mon pc (easy php).
Là je bosse sur une machine Linux.
Je bosse sur une machine qui n'est pas sous easy php.
C'est un SLIS (http://slis.ac-grenoble.fr)
Donc red hat 7.3 je crois.
Et il me faudrait un hebergeur en psql et uploader 10Mo pour tester le tout

Si ça peut servir extrait de php.ini à l'endroit upload.
Code PHP:
;;;;;;;;;;;;;;;;
File Uploads ;
;;;;;;;;;;;;;;;;
file_uploads    On                            Whether to allow HTTP file uploads
;upload_tmp_dir =                       ; temporary directory for HTTP uploaded files (will use system default if not specified)
upload_max_filesize 2M                    Maximum allowed size for uploaded files 
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
ATTENTION !
COPIER COLLER SAUVAGE POWA

Code PHP:
if (!($HTTP_POST_FILES["userfile"]["tmp_name"]))

// Et non pas

if (!($HTTP_POST_FILES["userfile\"][\"tmp_name\"]))

// Car dans 
$contenu tu dois bien metre \", mais surtout pas dans $HTTP_POST_FILES qui est un tableau. 
Et tu refais la même erreur plusieurs fois ... tss le monsieur il a pas verifier ses fondamentaux !
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Ah oui en effet, mais je venais de les rajouter, sans c'est pareil ça marche pas
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
http://www.php.net/manual/tw/feature...ad.php#AEN5793

Amuse toi bien

Mon conseil du jour c'est quand même :
Tu fais du copier / coller, en oubliant pas d'utiliser $HTTP_POST_FILES la ou il faut et tu matte déja si cette methode la fonctionne.
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Citation:
Provient du message de Dirty Hanny
http://www.php.net/manual/tw/feature...ad.php#AEN5793

Amuse toi bien
Exactement la page que j'ai d'ouverte dans le tab à coté de celui ou ya celle ou je poste.
j'ai essayé pas mal de truc, la première section 18.2, le script de la function upload un peu plus bas et que dalle à chaque fois
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
BAh !

Et upload_tmp_dir il puire de la croupe ?
Faudrais ptete lui filer un directory qui sois R/W à php.
Edit : Dans le .ini, paragraphe upload, bien sur.
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Citation:
Provient du message de Dirty Hanny
BAh !

Et upload_tmp_dir il puire de la croupe ?
Faudrais ptete lui filer un directory qui sois R/W à php.
Mouais j'vais essayer merci
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Unhappy
Toujours pas
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Bon faut debugger,

Recupére le max d'infos en provenance de PHP plutot que mettre un message aussi laconique
le but c'est de comprendre pourquoi ça foire.

nom de fichier mal renseigné ?
fichier trop gros ?
etc.

tu as tout un tas de variable à recuperer dans HTTP_POST_FILE, recupére le tout et analyse tout ça.

PS : et s'il te plait, utilise un peu mieux les double quote / simple quote, parfois un script qui foire c'est pas plus bête que ça.
Donc obligation de mettre des double quote pour séparer les tag html ( method = "POST", etc ) sinon privé de dessert
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Citation:
Provient du message de Dirty Hanny
Bon faut debugger,

Recupére le max d'infos en provenance de PHP plutot que mettre un message aussi laconique
le but c'est de comprendre pourquoi ça foire.

nom de fichier mal renseigné ?
fichier trop gros ?
etc.

tu as tout un tas de variable à recuperer dans HTTP_POST_FILE, recupére le tout et analyse tout ça.

PS : et s'il te plait, utilise un peu mieux les double quote / simple quote, parfois un script qui foire c'est pas plus bête que ça.
Donc obligation de mettre des double quote pour séparer les tag html ( method = "POST", etc ) sinon privé de dessert
Oui chef
Le pb de HTTP_POST_FILE c'est que en mettant ça :
Code PHP:
echo "type : ".$HTTP_POST_FILES["userfile"]["type"]." name : ".$HTTP_POST_FILES["userfile"]["name"]." tmpname : ".$HTTP_POST_FILES["userfile"]["tmp_name"]." size : ".$HTTP_POST_FILES["userfile"]["size"] ; 
ben j'ai le droit à :
type : name : tmpname : size :

ma variable est vide

Sachant que mon fichier fait 48 octet (ben oui c une importation de données venant d'un fichier texte et j'ai aps envie de mee taper 36000 lignes de fichier à entrer et autant d'utilisateur a creer avant (la fonction fait l'affectation user/groupe))
Lien direct vers le message - Vieux
Avatar de Hanny Drocéphale
Hanny Drocéphale [FED]
 
Avatar de Hanny Drocéphale
 
Donc il a rien fait

Lol. Forcement ça aide pas.
Remarque on savait qu'il avait rien fait, mais maintenant on sait que le html fait qu'dal.

( au fait, met tjrs des balises de CRLF pour séparer )

Bon, je sais pas comment c'est organiser ton script mais voici ce que je te conseille :

tu fais 2 fichiers, un html, un php
le html contient le form d'import, sans php.
le php se contente de logger ce que renvoie $HTTP_POST_FILES.

Je te conseille de laisser trainer tes yeux sur des trucs html tout fait / déja fait histoire de voir si ça marche chez toi, et d'upload un fichier qui soit le plus petit possible ( > 0 octet quand même ).

L'analyse des variables de http_post_files te donnera la solution.

allez bon app !

EDIT : 48 octet pour 36000 lignes ? tu te moque de moa ?
Au minimum ca fait 36k ... si les lignes font 1 chr, se dont je doute.
N'oublie pas que tu as une limite à 2 Mo ( ini php ) et 100ko ( UPLOAD_MAX_SIZE )
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Citation:
Provient du message de Dirty Hanny
Donc il a rien fait

Lol. Forcement ça aide pas.
Remarque on savait qu'il avait rien fait, mais maintenant on sait que le html fait qu'dal.

( au fait, met tjrs des balises de CRLF pour séparer )

Bon, je sais pas comment c'est organiser ton script mais voici ce que je te conseille :

tu fais 2 fichiers, un html, un php
le html contient le form d'import, sans php.
le php se contente de logger ce que renvoie $HTTP_POST_FILES.

Je te conseille de laisser trainer tes yeux sur des trucs html tout fait / déja fait histoire de voir si ça marche chez toi, et d'upload un fichier qui soit le plus petit possible ( > 0 octet quand même ).

L'analyse des variables de http_post_files te donnera la solution.

allez bon app !

EDIT : 48 octet pour 36000 lignes ? tu te moque de moa ?
Au minimum ca fait 36k ... si les lignes font 1 chr, se dont je doute.
N'oublie pas que tu as une limite à 2 Mo ( ini php ) et 100ko ( UPLOAD_MAX_SIZE )
Bon ben je testerai apres manger
Sinon je disais que je voulais pas me palucher 36000 lignes d'exemples donc mon fichier fais que 48 octet pasqu'il doit contenir 4 ligne a tout peter
Bon app' a toi aussi
Lien direct vers le message - Vieux
Avatar de Furiouss
Furiouss
Alpha & Oméga
 
Avatar de Furiouss
 
Talking
Ca marche
Apres quelques essais, je me suis rendu compte que j'avais un bug dans mes formulaires (en ai 2 dans la page)

En tous cas merci quand meme pour l'upload directory (j'y avais pensé mais bon comme c'est dit qu'il prend celle par defaut si yen a pas .. )
Et puis sans avoir essayé dans des pages à part j'aurai pas vu que ça marchait que mes forms buggait.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forums divers > La Taverne > [PHP] Problème de formulaire avec fichier
   

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 08h01.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite