Hallo liebe PHP-Experten,
bis jetzt bin ich mit meinen PHP-Kenntnissen kaum über die include-Funktion hinaus gekommen.
Deshalb habe ich mir aus diversen Foren und Tutorials ein FTP-Upload-Formular inkl. Kundenlogin zusammen geschustert.
Bevor ich zum eigentlichen Problem komme, möchte ich erstmal den Code präsentieren.
In der Datei login.php erfolgt der Kundenlogin.
Die eingegebenen Werte werden dann an die upload.php weitergegeben.
Nun zu meinem Problem:
Beim Wechsel von der login.php zur upload.php funktioniert die If-Abfrage oberflächlich: Das Formular wird angezeigt, Dateien können ausgewählt werden und der Upload kann ausgeführt werden.
Nach/während der entsprechenden Upload-Zeit springt das Skript aber in die Else-Anweisung für die falschen Logindaten.
Die hochzuladende Datei wurde auch nicht im Zielordner abgelegt bzw. werden keine anderen Fehlermeldungen angezeigt.
Meine Vermutung ist, dass während des Skriptdurchlaufs die Variablenwerte für $nutzer und $pwd verloren gehen.
Das Upload-Skript hat im Test ohne PW-Abfrage fehlerfrei funktioniert. Auch Syntaxfehler glaube ich, ausschließen zu können.
Ich bin mit meinen Experimenten bei der Variablen-Übergabe für die Login-Abfrage einfach am Ende.
Dementsprechend freue ich mich über Eure Hilfe. Es ist bestimmt nur irgendein banaler Anfängerfehler. Aber genau das bin ich ja auch: ein Anfänger.
Vielen Dank für Eure Antworten.
Gruß
MTBT
bis jetzt bin ich mit meinen PHP-Kenntnissen kaum über die include-Funktion hinaus gekommen.
Deshalb habe ich mir aus diversen Foren und Tutorials ein FTP-Upload-Formular inkl. Kundenlogin zusammen geschustert.
Bevor ich zum eigentlichen Problem komme, möchte ich erstmal den Code präsentieren.
In der Datei login.php erfolgt der Kundenlogin.
PHP-Code:
<form action="upload.php" method="post">
<table border=0>
<tr>
<td align="left"><strong>Nutzername:</strong></td>
<td align="left"><input type="text" name="nutzer"></td>
</tr>
<tr>
<td align="left"><strong>Passwort:</strong></td>
<td align="left"><input type="password" name="pwd"></td>
</tr>
<tr>
<td> </td>
<td align="left"><input type="submit" name="senden" value=" Absenden "></td>
</tr>
</table>
</form>
PHP-Code:
if ((md5($nutzer) == "rhabarber") and (md5($pwd) == "barbara")) {
//Wenn Logindaten korrekt sind:
$ftp_server = "domain.de";
$user = "bla";
$password = "blubb";
$uploaddir = "/domain.de/blobb";
$types = "bmp|doc|docx|eps|gif|indd|jpeg|jpg|pdf|png|psd|rar|tif|tiff|ttf|zip";
$maxsizemb = "75";
echo "<form style=\"margin-left:25px\" action=\"?action=upload\" enctype=\"multipart/form-data\" method=\"POST\"><input name=\"localfile\" type=\"file\" size=\"50\"><br><input type=\"submit\" name=\"sub\" value=\" Datei hochladen \"></form>";
$a = explode("|", $types);
$arraypices = count($a);
echo "<p>Folgende Dateitypen können Sie hochladen: <br>";
for ($i = 0; $i < $arraypices; $i++) {
echo "$a[$i], ";
}
echo "</p>";
if($_GET['action']=="upload"){
$tempname = $_FILES['localfile']['tmp_name'];
$name = $_FILES['localfile']['name'];
$type = $_FILES['localfile']['type'];
$size = $_FILES['localfile']['size'];
$maxsizebytes = ($maxsizemb * 1024 * 1024);
$uploadfile = "$uploaddir/$name";
$con = ftp_connect("$ftp_server");
$login = ftp_login($con, "$user", "$password");
if ((!$con) || (!$login)) { $err[] = "Die Verbindung zum Server ist fehlgeschlagen."; die; }
if(!preg_match("/\." . $types . "$/i", $_FILES["localfile"]["name"])) {
$err[] = "Sie haben versucht, einen ungültigen Dateityp hochzuladen. Die Datei wurde nicht gespeichert. Bitte laden Sie nur Dateien mit den erwähnten Endungen hoch."; }
if($size > "$maxsizebytes") {
$err[] = "Die hochzuladende Datei ist größer als die maximal erlaubten $maxsizemb MB.";}
if(empty($err)){
$upload = ftp_put($con, $uploadfile, $localfile, FTP_ASCII);
if (!$upload) {
echo "Der Upload ist leider fehlgeschlagen. Sollte das Problem weiterhin bestehen, nehmen Sie bitte Kontakt mit uns auf.<BR><BR>";
}
else {
echo "Die Datei $name wurde erfolgreich auf unserem Server gespeichert. Vielen Dank.<BR><BR>";
}
}
else {
foreach($err as $error)
echo "$error<br>";
}
ftp_quit($con);
}
}
//Wenn Login falsch:
else {
echo "<p>Der eingegebene Nutzername oder das Passwort waren nicht korrekt.<BR><A href=\"service.php\">Zurück</A><p>";
}
Beim Wechsel von der login.php zur upload.php funktioniert die If-Abfrage oberflächlich: Das Formular wird angezeigt, Dateien können ausgewählt werden und der Upload kann ausgeführt werden.
Nach/während der entsprechenden Upload-Zeit springt das Skript aber in die Else-Anweisung für die falschen Logindaten.
Die hochzuladende Datei wurde auch nicht im Zielordner abgelegt bzw. werden keine anderen Fehlermeldungen angezeigt.
Meine Vermutung ist, dass während des Skriptdurchlaufs die Variablenwerte für $nutzer und $pwd verloren gehen.
Das Upload-Skript hat im Test ohne PW-Abfrage fehlerfrei funktioniert. Auch Syntaxfehler glaube ich, ausschließen zu können.
Ich bin mit meinen Experimenten bei der Variablen-Übergabe für die Login-Abfrage einfach am Ende.
Dementsprechend freue ich mich über Eure Hilfe. Es ist bestimmt nur irgendein banaler Anfängerfehler. Aber genau das bin ich ja auch: ein Anfänger.
Vielen Dank für Eure Antworten.
Gruß
MTBT
Kommentar