• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Es regnet, ist neblig und kalt, alle sind krank und der Chef wird zunehmend cholerisch. Das Thema des Monats ist also folgerichtig --> Das Grau(en)
    Wir sind gespannt, war Euch dazu einfällt! Zum Wettbewerb --> Klick

Dateiupload per PHP

NightMare

Zuccalmaglios Renette
Registriert
09.11.04
Beiträge
263
Hallo Leute,
ich versuche mich nun seit gestern Abend mit einem Script für den Dateiupload... Sicherheitsaspekte sind zur Zeit irrelevant, da ich es zuerst einfach mal testen will. Auf meiner Mac-Umgebung funktioniert es tadellos...
Lade ich das Skript nun jedoch auf meinen Server erhalte ich folgende Fehlermeldung:
Warning: move_uploaded_file(./folders/Deutsch/Pruefung-Ziele-Wortarten.jpg): failed to open stream: Permission denied in /home/www/web416/html/classsharing/files/upload.site.php on line 19

Warning: move_uploaded_file(): Unable to move '/home/www/web416/phptmp/phpLqUPu6' to './folders/Deutsch/Pruefung-Ziele-Wortarten.jpg' in /home/www/web416/html/classsharing/files/upload.site.php on line 19


Dies finde ich höchst "unschön"... :-D Ich habe auch schon die Rechte auf den Zielordner angepasst... chmod 766 und chmod777 ausprobiert... Geholfen hat keines von beidem... :(

Der Code sieht folgendermassen aus:
Code:
if($send) {
		$max_file_size	= $_POST["max_file_size"];
		$thefile		= $_FILES['thefile']['name'];
		$filesize		= $_FILES['thefile']['size'];
		$folder			= $_POST["folder"];
		$password		= $_POST["password"];
		
		//echo "Dateiupload der Datei: $thefile nach ./folders/$folder/ mit der max. Grösse von $max_file_size";	
		
		if($filesize>1000000) {
			echo "Sorry, der Dateiupload wurde beendet, da das File zu gross ist ($filesize Bytes)!";
		}
		else {
			if($password=="tbm.gbs") {
				$uploaddir	= "./folders/$folder/$thefile";
		
			   if(move_uploaded_file($_FILES["thefile"]["tmp_name"], $uploaddir)) {
				 echo "$thefile ($filesize Bytes) wurde erfolgreich nach \"$folder\" geladen! <img src='./img/system/button_ok.png' height='32' valign='middle'>";
			   }
			   else
			   {
				 echo "There was a problem when uploding the new file.";
				 print_r($_FILES);
			   }
			}
			else {
				echo "Sorry, der Dateiupload wurde beendet, da ein falsches Upload-Passwort angegeben wurde!";
			}
			   
		}
		
	
	}

Hat jemand Hilfe für das Problem? :innocent:

Danke & Gruss nightmare
 

.holger

Borowitzky
Registriert
13.09.04
Beiträge
8.971
existieren die Unterordner? Haben die auch die nötigen Rechte, oder ist nur der übergeordnete Ordner 766 bzw. 777 ?
 

NightMare

Zuccalmaglios Renette
Registriert
09.11.04
Beiträge
263
Überordner, Unterordner... Alle besitzen im Moment diese Rechte... :eek:

gruss nightmare
 

Terminal

Gast
Lade ich das Skript nun jedoch auf meinen Server ...

Ich denke, dass es eben nicht "Dein Server" ist, sondern der eines beliebigen Provider.

Und du darfst dich leider mit deinen PHP-Anweisungen nicht über die php.ini des Servers hinwegsetzen. Du musst dir also die .ini zunächst mal anschauen und versuchen mögliche Mankos mit .htaccess auszugleichen. (möglicherweise safe_mod on/off oder anderes)

Wenn du das nicht auf die Weise erreichst, musst du dein Script auf Variablen und Anweisungen ändern die unbedenklich sind.

Als drittes kann man auch den Provider selbst ansprechen. Der tut sich aber mit solchen Anfragen (die eine Änderung der php.ini betreffen) eher schwerfällig.

dann kannst du noch ein vorgefertigtes PHP-Upload-Script verwenden. Dazu gibt es hunderte auf zig PHP-Seiten.
 

Hilarious

Gelbe Schleswiger Reinette
Registriert
10.08.05
Beiträge
1.759
Ich denke, dass es eben nicht "Dein Server" ist, sondern der eines beliebigen Provider.

Und du darfst dich leider mit deinen PHP-Anweisungen nicht über die php.ini des Servers hinwegsetzen. Du musst dir also die .ini zunächst mal anschauen und versuchen mögliche Mankos mit .htaccess auszugleichen. (möglicherweise safe_mod on/off oder anderes)

Wenn du das nicht auf die Weise erreichst, musst du dein Script auf Variablen und Anweisungen ändern die unbedenklich sind.

Als drittes kann man auch den Provider selbst ansprechen. Der tut sich aber mit solchen Anfragen (die eine Änderung der php.ini betreffen) eher schwerfällig.

dann kannst du noch ein vorgefertigtes PHP-Upload-Script verwenden. Dazu gibt es hunderte auf zig PHP-Seiten.

Wenn es safe_mode- oder open_basedir-Probleme wären, sähe die Fehlermeldung ein wenig anders aus, oder irre ich mich?