Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Problem mit PHP-Skript!

littlehelper / 1 Antworten / Flachansicht Nickles

Hi Leute!


Ich hab für eine Homepage ein kleines Script geschrieben, welches eine Datei uploaded.
Hier das Skript:


 <form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method=post>
  Datei hochladen: <input name="upload" type="File">
  <br>
  <br>
  <input type="submit" name="sendfiles" value="Datei senden" >
  </form>
  
  <?php
  if (isset($sendfiles))
  {
    $numsendfiles = count($HTTP_POST_FILES);
    
    foreach($HTTP_POST_FILES as $strFieldName => $arrPostFiles)
    {
    if ($arrPostFiles[size]>0)
    {
     $strFileName = $arrPostFiles[name];
     $intFileSize = $arrPostFiles[size];
     $strFileMIME = $arrPostFiles[type];
     $strFileTemp = $arrPostFiles[tmp_name];
     @copy ($strFileTemp, "$strFileName");
     echo "Datei <b>$strFileName</b> erfolgreich hochgeladen:";
     }
    }
  }
  ?>


So weit so gut, das Skript funktioniert auf meinem Test-Server ( WAMPP, Apache 2 mit PHP-Modul) einwandfrei. Wenn ich das Skript jedoch auf dem Server meines Providers laufen lassen, funktioniert das Skript beim ersten mal nicht korrekt. Beim 2. mal funktioniert es einwandfrei. Wo liegt der Fehler, ich nehme an bei der if-Abfrage if (isset(....)). Wie kann man diesen Fehler korriegieren?

A computer lets you make more mistakes faster than any invention in human history - with the possible exceptions of handguns and tequila.
bei Antwort benachrichtigen
Yogibear littlehelper „Problem mit PHP-Skript!“
Optionen

Dem Submit-Button brauchst Du keinen Namen zu geben. Das File-Feld enthält doch die Datei-Informationen und dem hast Du den Namen "upload" gegeben. Daher müßte die if-Abfrage folgendermaßen aussehen:

if (isset($upload) && $upload != 'none')

Es kommt natürlich darauf an, wie der Provider PHP konfiguriert hat. Vorsichtshalber sollte man hier statt "$upload" besser "$HTTP_POST_FILES['upload']['tmp_name']" schreiben. Dann läuft's auch nach dem nächsten Providerwechsel noch!

bei Antwort benachrichtigen