phpbar.de logo

Mailinglisten-Archive

[php] Re: =?iso-8859-1?Q?Dateien_per_FORM_=FCbertragen?=

[php] Re: =?iso-8859-1?Q?Dateien_per_FORM_=FCbertragen?=

Martin Ramsch m.ramsch_(at)_computer.org
Fri, 8 Oct 1999 07:30:34 +0200


Clemens Staub schrieb am Donnerstag, den  7. Oktober 1999:
> Situation:
> ich schicke aus einer multipart/form-data FORM eine File 
> (Ich habe an die MAX_FILE_SIZE gedacht) an ein Skript.
> 
> Die INPUT Felder sind mit "data[]" benannt, das geht soweit
> auch gut. Ich kann $data_name[0], $data_type[0] etc... auslesen.

Tatsächlich?

Nach meinen eigenen Tests (allerdings mit einem alten PHP V3.0.2a)
geht nämlich schon das nicht und es werden Variablen mit den Namen
'data[]', 'data[]_name', 'data[]_type' und 'data[]_size' erzeugt,
die man so gar nicht selber erzeugen erzeugen oder nutzen kann,
außer per $GLOBAL['data[]_name'].

> Problem :
> Jetzt aber, wenn ich mehrere INPUT Felder mit "data[]" benenne, die
> File also nachher z.B. mit $data[5] aufrufe, existiert nur noch die
> Variable $data[5], die entsprechenden $data_name[5] nicht mehr, das
> geht auch nicht wenn ich die das INPUT FELD eindeutig mit data[5]
> benenne !

Genau das gleiche hier.  Du könntest z.B. $GLOBALS['data[5]'] und
$GLOBALS['data[5]_name'] verwenden.
So ganz in Deinem Sinne ist das aber nicht ... ;-)

Die kurze Antwort ist also, daß Du beim File-Upload nicht mit Arrays
arbeiten kannst, sondern normale Variable verwenden solltest.


Eine nur mittelhäßliche Ausweichmöglichkeit wäre noch, daß Du im
Formular _doch_ 'data[0]', 'data[1]' usw. als Feldnamen verwendest,
und dann im PHP-Skript die dadurch entstehnden Variablen am Anfang in
ein echtes Array umträgst:

  for($i=0; isset($GLOBALS["data[$i]"]); $i++ ) {
     $data[$i]      = $GLOBALS["data[$i]"];
     $data_name[$i] = $GLOBALS["data[$i]_name"];
     $data_type[$i] = $GLOBALS["data[$i]_type"];
     $data_size[$i] = $GLOBALS["data[$i]_size"];
  }

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 5244 5EF3 B0B1 3826  E4EC 8058 7B31 3AD7


php::bar PHP Wiki   -   Listenarchive