Dateiupload via Upload Script funktioniert nicht

Gladiator6

Erfahrenes Mitglied
Hallo

Ich möchte ein einfaches Uploadscript realisieren, mit dem man Textdateien in ein vorbestimmtes Verzeichnis kopieren kann.

Leider habe ich das Problem, dass die Datei nicht ins Verzeichnis kopiert wird.

Hier der Code:

PHP:
PHP:
<?php

if($_POST["sent"])
    {
        // Benutzername und Passwort
        $user="test";
        $password="test";

        //Variablen aus Formular
        $passwort=$_POST["passwort"];
        $benutzername=$_POST["benutzername"];
        $datei=$_FILES["datei"]["tmp"];
        
        if($user=$benutzername AND $password=$passwort)
            {

                if($_FILES["datei"]["type"]=="text/plain")
                    
                    {
                        $filename="aktuelles.txt";
                        $verzeichnis="aktuelles";
                        $pfad=$verzeichnis."/".$filename;

                        move_uploaded_file($_FILES["datei"]["tmp"], $pfad);
        
                        echo "Datei erfolgreich auf den Server kopiert";
                    }
                    
                    else { echo "Fehler, Datei ist keine *.txt Datei";}
            }    

            else { echo "Fehler, Passwort oder Benutzername falsch";}
    }        
unset($_POST["sent"]);

?>

HTML:

<form action="upload.php" method="post" enctype="multipart/form-data" class="upload_form">
<input type="hidden" name="sent" value="1">
Benutzername:<input type="text" name="benutzername">
Passwort:<input type="password" name="passwort">

Datei Auswählen:

<input type="file" name="datei">

<input type="submit" name="absenden" value="Upload der Datei">

</form>
 
Das Array-Element $_FILES["datei"]["tmp"] wird wohl nicht existieren. Das Element $_FILES["datei"]["tmp_name"] schon eher.
 
Hallo

Vielen Dank

Habe das korrigiert. Lokal funktioniert es nun, die Datei wird ins ensprechende Verzeichnis kopiert. Auf dem Server funktioniert es aber noch nicht. Muss ich den Pfad anders angeben?
 
EDITED

Das kann mehrere Gründe haben. Hier mal zwei Ansätze

1. Manche Server mögen keinen move-Befehl
2. Schau mal ob in deinem <form> ein enctype="multipart/form-data" drinnen ist (übersehen)
 
Punkt 2 ist vorhanden!

Ich habe schon mit copy() und move_uploaded_files() probiert, beides funktioniert nicht. Gibt es weitere Möglichkeiten?
 
Ich arbeite grad selber mit dem Upload. Das Ding geht einwandfrei bei mir.

Probier mal meines. Musst halt noch anpassen.

PHP:
REMOVED
 
Zuletzt bearbeitet:
Bei dem Script wuerde ich aber empfehlen das veraltete $HTTP_POST_FILES durch $_FILES zu ersetzen da es, wie gesagt, veraltet ist und dementsprechend wohl ueber kurz oder lang rausfliegen wird. Weiterhin kann es auch per php.ini deaktiviert werden.
 
Hallo

Mein Script funktioniert doch! Kann mir nicht erklären warum es vorher nicht funktioniert hat, denn verändert habe eigentlich praktisch nichts, dh. ich habe lediglich neu Benutzername und Passwort aus einer Textdatei ausgelesen, um mit den Formulareingaben zu überprüfen! Sollte aber eigentlich keinen Unterschied machen, ob diese Daten aus dem Script selber oder einer externen txt Datei kommen!
 
MiNiMaG hat gesagt.:
Mein Kunde hat noch PHP3 am start :-)
Ach Du Sch....
Kann man den nicht einfach zwingen mal zumindest eine aktuelle 4er zu installieren? Allein schon mit Blick auf die Sicherheit waere das doch wohl angebracht.

Aber Du haettest das Script ja auch nicht gleich entfernen muessen.
 
Zurück