Fotogallerie upload Script

Briefkasten

Erfahrenes Mitglied
Hallo,

ich versuche ein Script zu schreiben bei dem man Fotoalben verwalten kann. Es soll ohne DB auskommen. Ich bin gerade dabei den Upload-Teil fertigzustellen.
Es gibt allerdings einige Probleme. So sollte es funktionieren:

1.)Benutzer gibt ein Wie das Fotoalbum heißt und wieviel Uploadfelder er benötigt.
http://kappl.milten.lima-city.de/images/upload/create_alb.php
PHP:
<form action="upload.php" method="POST">
Geben Sie den Namen des Albumbs ein: <input type="text" name="Albumname"></input><br/>
Geben Sie an wieviel Bilder Sie hochladen wollen:<input name="anzahlderbilder" type="text" size="4" maxlength="2">
</input><br/>
<input type=submit value="Submit"> 
</form>
2.)Es werden die Uploadfelder generiert und ein Ordner erstellt (Ordnername = Fotoalbumname von Schritt1)
http://kappl.milten.lima-city.de/images/upload/upload.php
PHP:
<?php
	echo " <b>$Albumname</b> uploaden:\n";
	echo '<form name="form1" method="post" action="check.php" enctype="multipart/form-data">';
	for ($i=0; $i < $anzahlderbilder; $i++) 
	{
		echo '<input type="file" name="imagefile">';
		echo '<br/>';
	}
	echo '<input type="submit" name="Submit" value="Submit">';
	echo '</form>';
	mkdir ("$Albumname", 0700); 
?>
3.)Dateien werden auf .gif und jpeg geprüft und sollen nun vom PHP temp Order in den Fotoalbumordner(Erstellter Fotoalbumname(ordner) von Schritt 2) kopiert werden. http://kappl.milten.lima-city.de/images/upload/check.php
PHP:
<? 
if(isset( $Submit )) 
{ 
//If the Submitbutton was pressed do: 
	if ($_FILES['imagefile']['type'] == "image/gif" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg")
	{ 
		move_uploaded_file ($_FILES['imagefile']['tmp_name'], "$Albumname/".$_FILES['imagefile']['name']) or die ("Konnte nicht kopiert werden!"); 
        echo ""; 
        echo "Name: ".$_FILES['imagefile']['name'].""; 
        echo "Size: ".$_FILES['imagefile']['size'].""; 
        echo "Type: ".$_FILES['imagefile']['type'].""; 
        echo "Copy Done...."; 
     } 
	 else
	 { 
		 echo "<br><br>"; 
    	 echo "Datei konnte nicht hochgeladen werden, Falscherdateityp (".$_FILES['imagefile']['name'].")<br>"; 
     } 
}

1 Problem es wird nur ein Bild upgeloadet.
2 Problem "Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1009 is not allowed to access / owned by uid 0 in /home/webpages/lima-city/kappl/html/images/upload/check.php on line 8
Konnte nicht kopiert werden!"

Habt ihr ne Idee was ich anderst machen könnte?

mfg Briefkasten
 
Zuletzt bearbeitet:
Folgendes solltest du anders machen:

1. Poste den Quellcode hier!
2. Benutze zum Upload der Dateien die FTP Uploadfunktionen, da der Safe-Mode es nicht erlaubt die Bilder so hochzuladen.
3. gib den Uploadfeldern ein array als name also bsp.: upload[]! und lad die dann mit einer foreach Schleife hoch!

Gruß BSA
 
Vielen Dank für die Antworten.

1.) Vorerst will ich ,dass überhaupt der Dateiupload klappt. Deshalb werde ich mich später über die restlichen Uploadfelder kümmern. Danke für den Tipp mit den Arrays.


Wenn ich
PHP:
move_uploaded_file ($_FILES['imagefile']['tmp_name'], "$Albumname/".$_FILES['imagefile']['name']) or die ("Konnte nicht kopiert werden!");

auf

PHP:
move_uploaded_file ($_FILES['imagefile']['tmp_name'], "files/".$_FILES['imagefile']['name']) or die ("Konnte nicht kopiert werden!");

umändere klappt der Upload hervorragend. Warum klappt das mit $Albumname nicht?
Gibts da irgend einen Trick?
 
Briefkasten hat gesagt.:
Hallo,
2 Problem "Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 1009 is not allowed to access / owned by uid 0 in /home/webpages/lima-city/kappl/html/images/upload/check.php on line 8

Confixx?
wäre ein typsiches confixx problem. Schreib dir eine FTP Class, mit der du das via. PHP Upload hochgeladenes Bild mit FTP nochmal auf den server schaffelst. Dann haste auch kein Problem damit, dass der Linux User, welcher PHP ausführt, keine Schreibberechtigung in deinem Webbenutzerverzeichnis hat.

So Long
 
Hallo!

Briefkasten hat gesagt.:
Warum klappt das mit $Albumname nicht?
Evtl. weil $Albumname eine Variable ist?

Ungetestet:
PHP:
 move_uploaded_file ($_FILES['imagefile']['tmp_name'], $Albumname."/".$_FILES['imagefile']['name']) or die ("Konnte nicht kopiert werden!");
Gruss Dr Dau
 
ähm nö,

Briefkasten hat gesagt.:
Geben Sie den Namen des Albumbs ein: <input type="text" name="Albumname"></input><br/>

PHP:
 move_uploaded_file ($_FILES['imagefile']['tmp_name'], $_POST['Albumname']."/".$_FILES['imagefile']['name']) or die ("Konnte nicht kopiert werden!");
 
Danke für die Zahlreichen Lösungsvorschläge, doch leider funktionierte keiner davon. Eine FTP Class zu schreiben wäre Sinnlos, weil ich in Erfahrung gebracht habe, dass mein Webspace Provider diese Funktion abgeschalten hat. Nun wollte ich euch Fragen ob es überhaupt möglich ist mit diesen PHP Einstellungen so etwas zu realisieren?
http://kappl.milten.lima-city.de/images/upload/phpinfo.php
Kann leider nicht viel mit den Daten anfangen.

mfg Postbote
 
BSA hat gesagt.:
2. Benutze zum Upload der Dateien die FTP Uploadfunktionen, da der Safe-Mode es nicht erlaubt die Bilder so hochzuladen.

Hallo,
da bei dir die FTP Uploadfunktionen anscheinend deaktiviert sind, wird es wohl nicht funktionieren.

mfg
forsterm
 
Zurück