Kleiner Wischmob: $_FILES : ["tmp_name"] ist leer

Hallo zusammen,

habe aktuell ein paar Probleme mit einem php-script, genaugenommen zwei.
und der Herr google weiß zwar viel über $_FILES aber zu meinem Problem konnte der mir auch nciht konkret weiterhelfen.

ich habe die Datei galprep.php mit folgendem php code:

  
<form enctype="multipart/form-data" action="galupload.php" method="post">  
        <input type ="hidden" name="MAX_FILE_SIZE" value="5000" />  
  
        Bitte geben Sie einen neuen Verzeichnisnamen an:<input type="text" size="50" name="verzeichnisname" /><br />  
  
   <?php  
    echo "<input type =\"hidden\" name=\"verzeichnis\" value=\"$verzeichnis\"/><br />\n";  
             for($i =1; $i<11; $i++)  
              {  
               echo "Bitte geben Sie den ". $i . ". Dateinamen an:<input type=\"file\" name=\"datei$i\" /><br />\n";  
              }  
            ?>  

das was ich mit diesem Forrmular absende, möchte ich mit dem script galupload.php auf den Server hochladen, das versuche ich zumindest so:

  
<?php  
$verzeichnis = $_POST["verzeichnis"] . "/" . $_POST["verzeichnisname"];  
if(!is_dir("../$verzeichnis"))  
{  
mkdir("../$verzeichnis", 0777);  
for($i=1; $i<11;$i++)  
 {  
  stripslashes("datei$i");  
  $blöd = ($_FILES["datei$i"]["tmp_name"]);  
  if ((!isset($_FILES["datei$i"])) || ($_FILES["datei$i"]["tmp_name"] == ""))  
  {echo "keine oder eine zu gro&szlig;e Datei ausgew&auml;hlt. - $blöd <br />\n";}  
  else  
  {if (copy ($_FILES["datei$i"]["tmp_name"], ".." . "/$verzeichnis/".$_FILES["datei$i"]["name"]))  
    echo "Die Datei " . $_FILES["datei$i"]["name$i"] . " wurde zum Server &uuml;bertragen.<br />\n";  
    else  
    {  
     echo "Speichern der Datei ". $_FILES["datei$i"]["name"] . " fehlgeschlagen.<br />\n";  
     echo "M&ouml;glicher Grund: Fehlende Schreibberechtigung auf dem Server.<br>\n";  
    }  
  }  
 }  
}  
else  
{  
echo "Das Verzeichnis <strong>$verzeichnis</strong> konnte nicht erstellt werden!";  
}  
?>  

leider geht es aber nicht. Das verzeichnis, sofern noch nicht vorhanden,
wird erstellt, aber leider werden keine dateien transportiert.
Soweit ich das Problem lokalisieren konnte liegt das daran, dass ($_FILES["datei$i"]["tmp_name"]) immer leer ist.

Kann mir jemand erklären, warum das so ist, ich habe schon alles mögliche probiert.

Schonmal vielen Dank im Vorraus

mfg Wischmob

  1. Hallo,

    Kleiner Tipp
    mfg, Flo

    --
    sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
    1. Kleiner Tipp

      Vielen Dank Flo, für den Tipp :-)
      Das sieht mal sehr perfekt aus, wenn Du mir jetzt noch sagen könntest wo der
      Fehler in meinem Script liegt, damit ich dabei auch was lernen kann,
      bist du mein ganz persönlicher Held ;-)

      Gruß Wischmob

      1. Hallo,

        Kleiner Tipp

        Vielen Dank Flo, für den Tipp :-)
        Das sieht mal sehr perfekt aus, wenn Du mir jetzt noch sagen könntest wo der
        Fehler in meinem Script liegt, damit ich dabei auch was lernen kann,
        bist du mein ganz persönlicher Held ;-)

        Wurde dir doch schon gesagt: Error=2 => Datei zu groß
        In Selfphp steht dazu folgendes:
        UPLOAD_ERR_FORM_SIZE 2 Die hochgeladene Datei überschreitet die in dem HTML-Formular mittels der Anweisung MAX_FILE_SIZE angegebene maximale Dateigröße.

        mfg, Flo

        --
        sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
        1. Hmm... das tut jetzt echt weh.
          Danke für 's "mit der Nase drauf stoßen", mein Held ;-)

          gruß, Wischmob

  2. Hi,

    leider geht es aber nicht. Das verzeichnis, sofern noch nicht vorhanden,
    wird erstellt, aber leider werden keine dateien transportiert.
    Soweit ich das Problem lokalisieren konnte liegt das daran, dass ($_FILES["datei$i"]["tmp_name"]) immer leer ist.

    print_r($_FILES); ergab was?

    Und die Benennung deiner Upload-Felder mit Indexnummer im Namen, und dann das herumgehampel mit $_FILES["datei$i"] finde ich aeusserst ungeschickt (und das nicht nur auf Grund der Art, wie du die laufende Nummer in den String einbindest).
    http://www.php.net/manual/en/features.file-upload.multiple.php waere besser.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. print_r($_FILES); ergab was?

      das bringt mir : Array ( [datei] => Array ( [name] => Kopievon8.png [type] => [tmp_name] => [error] => 2 [size] => 0 ) )

      Und die Benennung deiner Upload-Felder mit Indexnummer im Namen, und dann das herumgehampel mit $_FILES["datei$i"] finde ich aeusserst ungeschickt (und das nicht nur auf Grund der Art, wie du die laufende Nummer in den String einbindest).

      naja, bin ja auch noch ein ganz frischer Anfänger der sich grade durch sein
      "PHP Einsteigerseminar" druchkämpft :-)

      http://www.php.net/manual/en/features.file-upload.multiple.php waere besser.

      danke, das werde ich dann heute abend mal als Exkurs durchlesen.

      Aber mich würde der Fehler in meinem Script trotzdem interessieren.

      Gruß Wischmob

      1. Hi,

        print_r($_FILES); ergab was?

        (Solche Kontrollausgaben solltest du in <pre> einpacken, oder in den Seitenquelltext schauen, damit das ganze etwas lesbarer ist.)

        das bringt mir : Array ( [datei] => Array ( [name] => Kopievon8.png [type] => [tmp_name] => [error] => 2 [size] => 0 ) )

        Und dass da bei error was drin steht, laesst dich nicht stutzig werden, und von selbst noch mal im Manual bzgl. moeglicher Fehler nachlesen ...?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Und dass da bei error was drin steht, laesst dich nicht stutzig werden,

          und von selbst noch mal im Manual bzgl. moeglicher Fehler nachlesen ...?

          doch... seit dem ich weiß dass da error drinsteht bin ich schon am suchen.
          Aber vorher hatte ich den inhalt nur über ($_FILES["datei"]["tmp_name"])
          ausgegeben. Und da stand nichts von einem Error drin.

          Aber das hilft mir auf jedenfall schonmal weiter :-)