Seite 3 von 3

Upload Problem

Verfasst: 01.10.2003 11:17
von ecs-enders
Hallo!

Es ist doch immer praktischer, wenn der Provider gleich direkt mitquatscht! :grin:

Der PHP-Upload unter Windows ist ein wenig tückisch, aber generell schon möglich. Wir haben hier ein Script, welches immer funktioniert:

http://forum.ecs-webhosting.de/viewtopic.php?t=57

Nachdem der Safe-Modus aus ist, könnte man auch mit ini_set("phpvariable","wert") das Temp-Verzeichnis entsprechend verbiegen.

Das Problem bei Andreas ist vermutlich eher das, dass der Pfad nicht vollständig von d:\web\andreas.oymann\retriever-hilfe.de\htdocs\... aufgelöst werden kann, da er auf d:\ , d:\web und c:\ keinerlei Zugriff mit seinem Benutzer hat. Auf c:\temp hat er dagegen Vollzugriff.

Ich persönlich würde aber eher die Code vom Board für den Upload anpassen - die Fehlermeldung verrät ja, wo man rumhacken muß! :grin:

Viele Grüße,
Ingo Enders
ECS-Webhosting

Verfasst: 01.10.2003 11:31
von PhilippK
Hallo Ingo,

nun, der Code, der den Fehler verursacht, ist ein reines file_exists...

Vielleicht nochmals der Weg, wie ein Avatar-Upload funktionieren sollte:
  1. Der Benutzer gibt den lokalen Pfad an und sendet das Formular
  2. PHP lädt die Datei in das Upload-Verzeichnis (c:\temp)
  3. phpBB erhält den Dateinamen aus der Variable HTTP_POST_FILES (vor allem aus Kompatibilitätsgründen)
  4. phpBB prüft nun u.a., ob diese Datei auch auf dem Server existiert und ob Dateityp und Größe in Ordnung sind.
  5. War die Prüfung erfolgreich, so wird die Datei in den Ordner innerhalb der Web-Site verschoben
Schritt 1 bis 3 klappen problemlos, nur bei Schritt 4 scheitert das ganze, da phpBB nicht auf das Temp-Verzeichnis zugreifen darf. Da greifen übrigens weniger die Windows-Rechte als die open_basedir-Restriktionen der PHP.INI.
Eine Alternative wäre, die Datei ungeprüft in das Verzeichnis rüberzuziehen und dann erst die Prüfungen zu machen - nur genau da klingeln meine Alarmglocken sturm...

Gruß, Philipp

Upload Avatar

Verfasst: 01.10.2003 11:42
von ecs-enders
Hallo Philipp!

Ich habe mal open_basedir auf d:\web;c:\temp gesetzt (ich hoffe, man kann hier mit ; mehrere Verzeichnisse trennen). Aber c:\temp stand zuvor schon in der include-Liste bzw. unser Upload funktioniert ja.

Unter Linux ist das Problem übrigens dasselbe! :wink:

Diese file_exists Prüfung: In welcher Datei steht denn die Anweisung? Dann würde ich eher empfehlen, diese Überprüfung rauszumachen - wäre auch interessant für den Rest unserer Kunden, da phpBB von uns generell als Forum-Software empfohlen wird. :P

Viele Grüße,
Ingo Enders
ECS-Webhosting

Verfasst: 01.10.2003 12:04
von PhilippK
Hallo Ingo,

ich hoffe (und glaube), dass das jetzt so funktioniert. Andreas wird uns bestimmt Feedback geben.

Die file_exist.Prüfung steht in der usercp_avatar.php - Zeile 170. Allerdings ganz so dumm finde ich es nicht, wenn du erst prüfst, ob du 'nen Apfel in der Hand hast, bevor du reinbeißt. ;-)

Gruß, Philipp

Verfasst: 01.10.2003 16:22
von andreasOymann
Das kann doch bald nicht mehr sein:

IMMER NOCH

Code: Alles auswählen

Warning: file_exists(): open_basedir restriction in effect. File(c:\temp\php43D2.tmp) is not within the allowed path(s): (d:\web) in d:\web\andreas.oymann\retriever-hilfe.de\htdocs\forum\includes\usercp_avatar.php on line 170
Gleichzeitig die PHPBB-Meldung: "Der Avatar muss im GIF-, JPG- oder PNG-Format sein."

Die Datei heisst phpBBav.gif, ist 6kB groß ( erlaubt sind 17kB ). Das Gif ist auch in Ordnung, ist das bleiche Avatar wie meins hier bei phpBB.

Beim URL-Upload kommt

Code: Alles auswählen

Warning: tempnam(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (d:\web) in d:\web\andreas.oymann\retriever-hilfe.de\htdocs\forum\includes\usercp_avatar.php on line 148
, der Debug-Modus sagt:

Code: Alles auswählen

Could not write avatar file to local storage. Please contact the board administrator with this message

DEBUG MODE

Line : 157
File : d:\web\andreas.oymann\retriever-hilfe.de\htdocs\forum\includes\usercp_avatar.php
Habe gerade alles auch nochmal über localhost probiert, da klappt´s, mit dem original identischen Board (1:1-Kopie vom Webspace).


A.

Verfasst: 01.10.2003 16:56
von andreasOymann
Wer kann mir für 1-2 Tage mal 35MB Webspace mit FTP-Zugang sowie platz für ne DB (6MB groß) zum testen ausleihen ??? Will mal checken, ob´s bei nem anderen Provider klappt.

A.

Verfasst: 01.10.2003 17:19
von PhilippK
Andreas,

ich glaube immer noch, dass du von deinem Glück nur einen Web-Server-Restart entfernt bist. Denn die Änderungen der php.ini werden erst nach einem Neustart der Internet Information Services gültig.
Und die Fehlermeldung deutet genau darauf hin, dass dies noch nicht geschehen ist...

Gruß, Philipp

Verfasst: 01.10.2003 18:16
von andreasOymann
So, Prob ist erledigt!!! Mein Provider ( Ingo ) hat noch irgendwas verändert... oder wie Phillipp sagt, nen Restart gemacht...

A.