Bild upload funktioniert nicht!

ede592

Mitglied
Hallo,

Ich habe eine Funktion geschrieben womit ich einen Ordner über html Oberfläche erstellen kann, wobei ich den namen des Ordner in ein Textfeld eingeben kann und dann soll halt ein ordner mit diesem namen erstellt werden. Anschliessend soll er mir Bilder in diesen Ordner hineinladen.
Aber er gibt mir immer nur eine Fehlermeldung mit "Unable to access" aus (beim bildupload) obwohl die schreibrechte von dem ordner und von der funktion hier auf 777 gesetzt sind...
Hier mein Quelltext:
ich denke das das was damit zutun hat wo das bild hinkopiert werden soll...
PHP:
<?
session_start();
include 'sessionhelpers.inc.php';

if (logged_in()) {
	echo '<font face="Arial, Helvetica, sans-serif"><h2>Neue Gallery erstellen</h2></font><br /><br />
<form action="new_gallery.php" method="post">Gallery-Name<input name="galleryname" type="text" id="galname" /><input name="new_submit" type="submit" id="new_submit" value="Erstellen"><br /></form>';
		
		if (isset($_POST['new_submit'])) {
		$dirname=$_POST['galleryname'];
			if(mkdir(''.$dirname.'',0777)){
				echo 'Bitte Wählen sie jetz die Bilder aus:<br>
<form action="new_gallery.php" method="post" enctype="multipart/form-data">
<input name="bild1" type="file"><br />
<input name="bild2" type="file"><br />
<input name="bild3" type="file"><br />
<input name="bild4" type="file"><br />
<input name="bild5" type="file"><br />
<input name="bild6" type="file"><br />
<input name="bild7" type="file"><br />
<input name="bild8" type="file"><br />
<input name="bild9" type="file"><br />
<input name="hochladen" type="submit" value="Hochladen" /></form>
<br /><br />';
	
	if(isset($_POST['hochladen']))	{
	$name1=$_FILES['bild1']['name'];
	$tempname1=$_FILES['bild1']['tmp_name'];
	$type1=$_FILES['bild1']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name2=$_FILES['bild2']['name'];
	$tempname2=$_FILES['bild2']['tmp_name'];
	$type2=$_FILES['bild2']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name3=$_FILES['bild3']['name'];
	$tempname3=$_FILES['bild3']['tmp_name'];
	$type3=$_FILES['bild3']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name4=$_FILES['bild4']['name'];
	$tempname4=$_FILES['bild4']['tmp_name'];
	$type4=$_FILES['bild4']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name5=$_FILES['bild5']['name'];
	$tempname5=$_FILES['bild5']['tmp_name'];
	$type5=$_FILES['bild5']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name6=$_FILES['bild6']['name'];
	$tempname6=$_FILES['bild6']['tmp_name'];
	$type6=$_FILES['bild6']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name7=$_FILES['bild7']['name'];
	$tempname7=$_FILES['bild7']['tmp_name'];
	$type7=$_FILES['bild7']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name8=$_FILES['bild8']['name'];
	$tempname8=$_FILES['bild8']['tmp_name'];
	$type8=$_FILES['bild8']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}
	
	$name9=$_FILES['bild9']['name'];
	$tempname9=$_FILES['bild9']['tmp_name'];
	$type9=$_FILES['bild9']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$dirname."/");}}
	
	
}
				else{echo'Ordner konnte nicht erstellt werden';} }}
?>


VIELEN DANK FÜR EURE HILFE ! :)
 
Zuletzt bearbeitet:
2 Sachen:

error_reporting(E_ALL ^ E_NOTICE)
Zum Beispiel einsetzen ganz oben.

Und kommt aus dem $_POST['galleryname']; überhaupt was rausß
 
ja die ordner werden erstellt nur das problemliegt bei dem bildupload...
Und das error_reporting zeigt mir ejtz gar nichts mehr an aber das bild wir eifnach nich an die richtige stelle verschoben
danke für die fixe antwort....
 
Zuletzt bearbeitet:
Hallo!

Erstmal, es langt auch wenn das Verzeichnis 0666 bekommt, denn es muss ja schliesslich nichts ausgeführt werden. ;)

Zum anderen, ich tippe mal darauf dass der Server in safe_mode läuft.
Das Script gehört aber nicht dem Apache User (z.B. wwwrun) sondern Dir.
Daher sind die Rechte wahrscheinlich auf 0644 (default) gesetzt, was nicht ausreicht dass das Script die Bilder darin ablegen kann.
Zur Sicherheit solltest Du die Rechte mal per FTP überprüfen..... dann weisst Du jedenfalls was Sache ist. ;)

Ein Lösung kann ich Dir aber nicht nennen..... ich habe es einfach so gelöst dass ich meine Scripte als wwwrun hochlade. :D
Aber da der safe_mode und die Rechte ein alter Hut sind, ist dazu hier sicherlich etwas zu finden.

Gruss Dr Dau
 
Die Variable $dirname existiert nach dem Drücken auf den Hochladen-Button nichtmehr!
Vllt. noch mit nem Hidden-Feld weitergeben.
MfG
 
Mittlerweile sieht mein code folgendermaßen aus:
PHP:
<?
session_start();
include 'sessionhelpers.inc.php';

error_reporting(E_ALL ^ E_NOTICE);

if (logged_in()) {
	echo '<font face="Arial, Helvetica, sans-serif"><h2>Neue Gallery erstellen</h2></font><br /><br />
<form action="new_gallery.php" method="post">Gallery-Name<input name="galleryname" type="text" id="galname" /><input name="new_submit" type="submit" id="new_submit" value="Erstellen"><br /></form>';
		
		if (isset($_POST['new_submit'])) {
		$dirname=$_POST['galleryname'];
		echo'<form action="new_gallery.php" method="post"><input name="dirname" type="hidden" value="'.$dirname.'"></form>';
		if(mkdir(''.$dirname.'',0777)){echo'Gallery erfolgreich erstellt';}else{echo'Gallery konnte nciht erstellt werden!';}}
				echo 'Bitte Wählen sie jetz die Bilder aus:<br>
<form action="new_gallery.php" method="post" enctype="multipart/form-data">
<input name="bild1" type="file"><br />
<input name="bild2" type="file"><br />
<input name="bild3" type="file"><br />
<input name="bild4" type="file"><br />
<input name="bild5" type="file"><br />
<input name="bild6" type="file"><br />
<input name="bild7" type="file"><br />
<input name="bild8" type="file"><br />
<input name="bild9" type="file"><br />
<input name="hochladen" type="submit" value="Hochladen" /></form>
<br /><br />';
	
if(isset($_POST['hochladen']))	{
$destination=$_POST['dirname'];
	$name1=$_FILES['bild1']['name'];
	$tempname1=$_FILES['bild1']['tmp_name'];
	$type1=$_FILES['bild1']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name2=$_FILES['bild2']['name'];
	$tempname2=$_FILES['bild2']['tmp_name'];
	$type2=$_FILES['bild2']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name3=$_FILES['bild3']['name'];
	$tempname3=$_FILES['bild3']['tmp_name'];
	$type3=$_FILES['bild3']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name4=$_FILES['bild4']['name'];
	$tempname4=$_FILES['bild4']['tmp_name'];
	$type4=$_FILES['bild4']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name5=$_FILES['bild5']['name'];
	$tempname5=$_FILES['bild5']['tmp_name'];
	$type5=$_FILES['bild5']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name6=$_FILES['bild6']['name'];
	$tempname6=$_FILES['bild6']['tmp_name'];
	$type6=$_FILES['bild6']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name7=$_FILES['bild7']['name'];
	$tempname7=$_FILES['bild7']['tmp_name'];
	$type7=$_FILES['bild7']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name8=$_FILES['bild8']['name'];
	$tempname8=$_FILES['bild8']['tmp_name'];
	$type8=$_FILES['bild8']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}
	
	$name9=$_FILES['bild9']['name'];
	$tempname9=$_FILES['bild9']['tmp_name'];
	$type9=$_FILES['bild9']['type'];
	if(!empty($_POST['bild1'])){copy($tempname1,"/".$destination."/");}}
	
	
}

?>
Trotzdem funktioniert das nicht mir wird auch keine Fehlermeldung ausgegeben, es wird halt einfach kein bild hochgeladen....
 
Das Hidden-Feld muss mit in das Upload-Formular!
In nem eigenen Formular wird das nicht mitgesendet.
MfG

edit:
Bzw., da du eh mit Sessions arbeitest, kannst du das auch einfach in einer Session-Variable ablegen!
 
Zuletzt bearbeitet:
Zurück