Upload funktioniert nicht, benötige ich bplaced pro?

Hallo!

Bevor, jetzt alle hier auf mich losstürzen… ich weiß das die letzten 2 Threads in dieser Sparte über das Thema sind, ABER meine Frage konnte dadurch nicht beantwortet werden.

Ich will eine DownloadArea einrichten, die vom Administrator von Datein gefüllt werden soll, dafür muss der Admin Datein raufladen können.

Mein bisheriger Code schaut so aus: Das Formular, der PHP-Code dient lediglich der Befüllung einer Combobox, mit der ich in einer Datenbank das hochgeladene File einer Veranstaltung zuzuweisen:

[code]<form enctype=“multipart/form-data” action="<?php echo htmlspecialchars ("downloadeinschreiben.php"); ?>" method=“post”>

File
Veranstaltung
<?php for($row=0;$row<mysql_num_rows($veranstaltung);$row++) { echo "".mysql_result($veranstaltung,$row,1)." || ".mysql_result($veranstaltung,$row,2).""; } ?>
[/code]

Und hier ist das Verarbeitende script, das liegt im Ordner “Admin” der im gleichen Verzeichnis wie der Ordner “DownloadArea” liegt in den ich die geladenen Datein spielen will:

	echo "<p>".$_FILES['thefile']['error']."</p>";
	move_uploaded_file($_FILES['thefile']['temp_name'],"../DownloadArea/_upload".$_FILES['thefile']['name']);

Der Errorbereich liefert “0” => Upload war erfolgreich! aber die Probleme treten erst bei “move_uploaded_file()” auf, die liefert false! Ist mein Code falsch oder brauche ich bplaced pro um sowas zu realisieren. Im Internet habe ich 5-6 unabhängige Seiten angeschaut die ALLE den Upload so realisiert haben. Ich habe auch gelesen, dass manche Webspaces das nicht erlauben. Ist das bei bplaced auch der Fall?

mfg Christoph

Eine reine Downloadseite ist bei bplaced nicht erlaubt.

Gibts dazu auch nen Link, oder muss ich wiedermal die alte Glaskugel anwerfen?

Mfg :wink2:

Dann schreibe bitte

error_reporting(E_ALL); ini_set('display_errors', 1);
an den Anfang des Scriptes, und schau, ob du aussagekräftigere Fehlermeldungen bekommst.

Btw: Mit dem Thema Sicherheit solltest du dich noch mal etwas intensiver beschäftigen.

Das hier bspw.

ist überflüssiger Voodoo - einen Wert, den du selber im Script vorgibst, brauchst du nicht noch gesondert zu behandeln, wenn er gar keine kritischen Zeichen enthält.

Das hier hingegen

ist purer Leichtsinn - $_FILES[‘thefile’][‘name’] wird vom Client übergeben, also kann da alles drin stehen.
U.a. könnte es bspw. “/…/” enthalten, und damit aus dem Verzeichnis, das du mit diesem Code vermeintlich vorgegeben hast, ausbrechen.

Wenn ich den „richtigen“ Dateinamen vorgebe, könnte ich also bspw. deine index.php im Hauptverzeichnis überschreiben.
Und als Inhalt der Datei, die ich hochlade, verwende ich dann auch noch einen hübschen kleinen PHP-Code, der mir das Auslesen und Anzeigen der Inhalte sämtlicher Dateien auf deinem Webspace erlaubt, lese mir deine Datenbank-Zugangsdaten o.ä. aus einer Configdatei - und dann haben wir den nächsten „heul, mein Webspace wurde gehackt und ich weiß nicht wieso”-Thread hier im Forum.

Also bitte nicht ganz so blauäugig an sowas rangehen, sondern erst mal ein bisschen mit den Grundlagen beschäftigen.

[quote=„Mgier“]Eine reine Downloadseite ist bei bplaced nicht erlaubt.

Gibts dazu auch nen Link, oder muss ich wiedermal die alte Glaskugel anwerfen?

Mfg :wink2:[/quote]

Wer redet denn hier von einer reinen Download-Seite, im Gegenteil, es handelt sich um ein Veranstaltungsmanagement-System für die Landesgruppe Burgenland des österreichischen Retrieverclubs :slight_smile:
Die Downloadarea ist nur ein kleiner Teil des Gesamten. Und dient rein dem Zweck Veranstaltungsausschreibungen für User verfügbar machen.

Edit: der Link ist: http://www.urologe.bplaced.net

[quote=„crisb“]Das hier hingegen

move_uploaded_file($_FILES['thefile']['temp_name'],"../DownloadArea/_upload".$_FILES['thefile']['name']);

ist purer Leichtsinn - $_FILES[‚thefile‘][‚name‘] wird vom Client übergeben, also kann da alles drin stehen.
U.a. könnte es bspw. „/…/“ enthalten, und damit aus dem Verzeichnis, das du mit diesem Code vermeintlich vorgegeben hast, ausbrechen.

Wenn ich den „richtigen“ Dateinamen vorgebe, könnte ich also bspw. deine index.php im Hauptverzeichnis überschreiben.[/quote]

Ich weiß… aber ich sehe noch keinen Sinn dahinter sich schon um die Sicherheit zu kümmern wenn die Grundfunktion (Upload von, von mir gesicherten Datein) nicht funktioniert. Weil das den Grundcode „zumüllen“ würde.

Der Code hat durchaus was gebracht:
Notice: Undefined index: temp_name in /users/urologe/www/Admin/downloadeinschreiben.php on line 26
Diese zeile wird jetzt ausgespuckt!

Die Zeile 26 enthält die move_uploaded_file()-Methode

mfg Christoph

Schau dir mal ganz genau an, wie der Index heißen muss:
php.net/manual/de/features.f … method.php

Aha!

Wenn wir uns dann etwas schlau machen, erfahren wir, dass deine Seite, wo du das kopiert hast entweder Bullshit verbreitet, oder du falsch abgeschrieben hast :wink: temp_name existiert nämlich in der Tat nicht :slight_smile:

Mfg :wink2:

//Kann jemand meinen Post um eine Minute rückversetzen?

autsch! :nutz: 5 Stunden probieren, um dann draufzukommen das ein Buschstabe zu viel ist? Oo!

Man als Programmierer ist man wirklich Masochist :smiley:

Danke :hail:

In diesem Sinne,
Gute Nacht :wink2:

Oder man ist einfach noch zu sehr Newbie, um zu wissen, wie man das error_reporting vernünftig einstellt, damit einen PHP auf solche Fehler selber hinweist.

php.net/manual/en/errorfunc. … -reporting
php.net/manual/en/configurat … .modes.php

Ich bin vielleicht Newbie in sachen PHP und Webentwicklung!

jedoch keines Falls in Sachen Programmierung! ich bin jetzt 17 Jahre alt und habe 5 Jahre Erfahrung in Sachen C# und anderen .NET Sprachen. Ich arbeite in einer kleinen Computerfirma die Anwendungen erstellt, die auf den Kunden zugeschnitten sind.

Ich befasse mich mit PHP erst seit ca 2 Monaten, ich bin absolut von begeistert von der Sprache, da Sie sehr umfangreich ist.

Normalerweise poste ich erst in Foren, wenn ich trotz google und zu rate ziehen sämtlicher Bucher, die bei mir herumstehen, absolut nicht mehr weiter weiß! Natürlich ist es ein Anfängerfehler den Befehl falsch zu schreiben. Aber ich habe den Fehler 5 Stunden lang nicht gefunden und mich dann zu diesem Post entschlossen!

mfg Christoph

[quote=“Mares”]Ich bin vielleicht Newbie in sachen PHP und Webentwicklung!
[…]
Aber ich habe den Fehler 5 Stunden lang nicht gefunden[/quote]
Und deshalb habe ich dir einen Hinweis auf eine hilfreiche PHP-Einstellung gegeben, mit der du das in zukünftigen, vergleichbaren Fällen vermeiden kannst.

Mit der brauchst du nicht stundenlang suchen, sondern bereits beim ersten Aufruf eines Scriptes, welches einen derartigen Fehler enthält, gibt dir PHP einen entsprechenden Hinweis.