PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfacher ftp Upload mit PHP.


Geldmann3
2010-03-07, 00:47:15
Ich habe gerade versucht den hier (http://webmatze.de/ftp-mit-php/) beschriebenen Ftp Upload auf meinem Server zu installieren. (Xampp) Die Variablen habe ich alle angepasst. Wenn ich jetzt jedoch eine Datei hochladen möchte, kommt folgende Fehlermeldung

Verbunden mit ftp_server als Benutzer MeinBenutzername

Warning: ftp_put() [function.ftp-put]: Filename cannot be empty in C:\Pfad\zu\meinem\Upload\Script.php on line 28

Ftp upload war fehlerhaft!
Mehr lesen: http://webmatze.de/ftp-mit-php/#ixzz0hRMHuLpD Under Creative Commons License: Attribution Share Alike

Kann mir jemand verraten was ich eventuell falsch mache?

Gast
2010-03-07, 00:53:06
Überprüfe ob du $zieldatei richtig gesetzt hast, und ob du dich nirgends vertippt hast.

PS: Dieser Fehler dürfte einfach zu finden sein eigentlich. Wenn du wenig/nichts von PHP verstehst ist es nicht ratsam damit richtige Internetauftritte zu realisieren. Ich will nicht böse sein, aber so können wirklich GRAVIERENDE Sicherheitslücken entstehen, vor allem wenn du auch noch mit ftp rumwurstelst.

Lg Gast

Geldmann3
2010-03-07, 01:12:48
Naya, meine PHP Kenntnisse sind auf sehr niedrigem Niveau, jedoch habe ich mich auch schon mit Javascript und visual basic befasst und weiss deshalb ungefähr was in so einem Script abläuft:wink:

Jedoch sehe ich hier keinen Fehler...
Ich glaube kaum dass ich mich vertippt habe, denn das Script habe ich nahezu per Copy and Paste übernommen.
(Line 28 habe ich nicht mal verändert)

Zieldatei sieht bei mir so aus
Zuerst das Form
<input type="text" name="zieldatei">
Dann in der PHP Datei die Zuweisung
$zieldatei = $_POST['zieldatei'];
Dann Line 28
$upload = ftp_put($connection_id, $zieldatei, $lokale_datei, FTP_ASCII);
ENDE
Was kann man sich denn da groß verschreiben? Oder meintest du vielleicht was anderes?

Marbleearth
2010-03-07, 02:18:54
so kann dir keiner helfen.

poste den kompletten Quellcode (html + php).

reicht ja wenn du username/passwort vom ftp entfernst.

mach mal das hier rein:

echo($_POST['zieldatei']);

und guck erstmal ob in der Variable überhaupt was drin steht.

AlecWhite
2010-03-07, 06:46:50
1.) Für Upload gibt es spezielle Input Elemente (siehe http://de.selfhtml.org/html/formulare/datei_upload.htm )

2.) Nach einem Upload sind alle relevanten Infos im Superglobalen Array $_FILES (siehe http://www.php.net/manual/de/features.file-upload.post-method.php )

3.) Das verlinkte Script ist fehlerhaft (siehe 2). Des Weiteren ist es extrem unsicher (ftp_put überschreibt zum Beispiel bestehende Dateien ohne Kommentar, im Script wird das nicht abgefangen)

Marbleearth
2010-03-07, 10:53:02
argh das mit dem $_POST hab ich übersehen. da kann nix drin stehen. Das ist wie AlecWhite gesagt hat definitiv in $_FILES drin.

Die Form ist im Startpost-Artikel zumindest richtig dargestellt:

<form action="ftpbeispiel.php" enctype="multipart/form-data" method="POST">

Geldmann3
2010-03-07, 18:00:54
Hier (http://riederwald.mine.nu/Anonymous/DateiUpload/) könnt ihr euch die Dateien komplett ansehen, und das Script sogar ausprobieren. Und wenn Lust sogar eine verbesserte Version uploaden. Im Grunde habe ich wirklich nur die Variablen angepasst....

Marbleearth
2010-03-08, 08:33:37
Hier (http://riederwald.mine.nu/Anonymous/DateiUpload/) könnt ihr euch die Dateien komplett ansehen, und das Script sogar ausprobieren. Und wenn Lust sogar eine verbesserte Version uploaden. Im Grunde habe ich wirklich nur die Variablen angepasst....

Du bietest uns eine PHP Datei auf Webspace, welcher PHP parsed, zum Download an :freak:
probiers doch mal selbst, merkst du was? :rolleyes::biggrin:

mal im Ernst:
Entweder du zippst es, oder du übergibst es mit nem Skript wie dem hier:

<?php

header('Content-Disposition: attachment; filename="Upload.php"');
header('Content-Type: x-type/subtype');

readfile('Upload.php');

?>

habs jetzt aber nicht getestet!

Geldmann3
2010-03-08, 11:50:15
Du bietest uns eine PHP Datei auf Webspace, welcher PHP parsed, zum Download an
probiers doch mal selbst, merkst du was?
Stimmt ja, mensch bin ich ein Depp, ich dachte ich hätte über FTP verlinkt.:freak:
Hier ist der richtige Link (ftp://riederwald.mine.nu/DateiUpload/) (Über FTP wird auch nicht geparst)
Dies ist der selbe Ordner noch mal über HTTP (http://riederwald.mine.nu/Anonymous/DateiUpload/) (Hier wird wieder geparst)