WinFuture-Forum.de: Php - Ordner Erstellen Bzw Bild Hochladen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php - Ordner Erstellen Bzw Bild Hochladen Mit den Namen aus einer DB


#1 Mitglied ist offline   Neverball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 584
  • Beigetreten: 07. Juli 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Cuxiland

geschrieben 23. Mai 2009 - 19:28

Schönen guten abend an alle,

ich stehe vor einen kleinen problem bei der Ordnererstellung. Ich habe vor mithilfe von PHP ein Bild hochzuladen und das Bild soll dann in den Ordner der davor erstellt wurde. Der Name des ordner ist der gleiche wie vm benutzername. Nur leider klappt das nicht so wie ich es möchte kann mir jemmand helfen?

<?php 
if (isset($_SESSION['id'])){
	$sql = "SELECT firststep FROM user WHERE ID ='$id'";
	$result = mysql_query($sql);
	$row = mysql_fetch_assoc($result);
	$benutzername = $row['Benutzername'];
	if ($row['firststep'] == 0){
		
		echo "In diesen Teil der Einrichtung sollst du ein Teamlogo hochladen!
		Das Bild darf nur 150 x 150 sein und max. 200 kb groß sein!";

		echo "<form enctype='multipart/form-data' action='index.php?site=secondstep' method='POST'>
			 Send this file: <input name='datei' type='file'><br />
			 <input type='submit' name='sende_button' value='Sende Datei'>
			 </form>";
		$datei = $_POST['datei'];	
		if( empty($datei) ){
			if ( mkdir ("avatare/"."$benutzername", 0700 ) )
	
			$uploaddir = './avatare/'.'$benutzername'; # Pfad wohin das Bild geladen werden soll
			$uploadfile = $uploaddir. basename($_FILES['datei']['name']);

			echo '<pre>';
			if( !move_uploaded_file($_FILES['datei']['tmp_name'], $uploadfile) ) {
			
					
			#print_r($_FILES); #Genaue Ausgabe was für einen Bildtyp Hochgeladen wurde
			}
			else
			{
			// ------ Hier sagst du dass das Bild hochgeladen wurde
   			 echo 'Die Datei wurde hochgeladen:',"\n";
   			 #print_r($_FILES);
			if( $_FILES['datei']['type'] == 'image/gif' || $_FILES['datei']['type'] == 'image/jpeg' || $_FILES['datei']['type'] == 'image/png' || $_FILES['datei'] =='image/JPG'  )
				{
	 		   #Script zu ausgabe von der Höhe, Breite , Größe in KB und in HTML Tags
	   		 if ($_FILES['datei']['size'] < 2048){
			
	   			 }
   			 }
			// ----------- und hier wird das Bild überprüft
   		 if ($bildDaten[0] > 500 || $bildDaten[1] > 1500){
				echo "Bild ist nicht zulaessig";
			}
			else{
	 		   echo "Bild ist zulasessig";
   				 }
		}
		}
		else {
			
		}
	
	}
	else {
		echo "Du hast die Einnrichtung hinter dir";
	}
}
else {
	echo "Du bist nicht eingeloggt";
}


?>


MFG
Neverball
0

Anzeige



#2 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 23. Mai 2009 - 21:29

Zitat

Nur leider klappt das nicht so wie ich es möchte kann mir jemmand helfen?


Wird der Ordner nicht angelegt oder die Datei nicht hochgeladen?

$sql = "SELECT firststep FROM user WHERE ID ='$id'";


Die Zeile solltest du lieber wie fologt ändern:

$sql = "SELECT firststep FROM user WHERE ID ='".$id."'";


Die folgende Zeile am besten auch ändern:
if ( mkdir ("avatare/"."$benutzername", 0700 ) )


nach
if ( mkdir ("avatare/".$benutzername, 0700 ) )


Eine Variable benötigt keine " das sie kein Text (String) ist, mit den " gabs schon nen paar nette bugs obwohl es meistens funktioniert.

$datei = $_POST['datei'];


Hier müsstest du folgendes verweden (meiner meinung nach ist POST dann nicht gefüllt):

$datei = $_FILE['datei']['name'];


Das Dateiupload Tutorial von PHP.net sollte dir außerdem weiterhelfen: Klick.

Dieser Beitrag wurde von Skiller bearbeitet: 23. Mai 2009 - 21:29

0

#3 Mitglied ist offline   Neverball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 584
  • Beigetreten: 07. Juli 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Cuxiland

geschrieben 24. Mai 2009 - 00:44

edit://

also es funktioniert soweit der fehler war in der sql anweisung hehe.

2 Probleme ergeben sich immer noch:

1. Er lädt die datei nicht in den ordner die angebenen wurde sonder bennent die immer um.

2. Ich schaffe es nicht das das script erst anfängt zu arbeiten sobald ich den senden button drücke

Dieser Beitrag wurde von Neverball bearbeitet: 24. Mai 2009 - 15:34

0

#4 Mitglied ist offline   lloiser 

  • Gruppe: aktive Mitglieder
  • Beiträge: 92
  • Beigetreten: 13. August 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 24. Mai 2009 - 17:12

einfach in das Formular quasi einen "Flag" setzen, sprich
<input type="hidden" name="gesendet" value="1" />


und im php-Code einfach auf diesen Value abfragen:
if($_POST['gesendet']=='1') { -> ganz normal weiter machen lassen }

Dieser Beitrag wurde von lloiser bearbeitet: 24. Mai 2009 - 17:12

Denken ist Arbeit
Arbeit ist Energie
und Energie soll man sparen
0

#5 Mitglied ist offline   Neverball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 584
  • Beigetreten: 07. Juli 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Cuxiland

geschrieben 24. Mai 2009 - 18:42

Danke damit wäre ein problem gelöst!
Fehlt nur noch das mit den hochladen habs mal ein bisschen umgeschrieben jetzt zeigt der mir aber nen fehler an.
Die Zeilen:
			$sql = "SELECT Benutzername FROM `user` WHERE `ID` ='".$id."'";
			$result = mysql_query($sql);
			$row = mysql_fetch_assoc($result);
			$benutzername = $row['Benutzername'];
			if ( mkdir ("avatare/".$benutzername , 0777 ) )
	
			$uploaddir = './avatare/'.$benutzername; # Pfad wohin das Bild geladen werden soll
			$uploadfile = $uploaddir. basename($_FILES['datei']['name']);

			echo '<pre>';
			if( !move_uploaded_file($_FILES['datei']['tmp_name'], $uploaddir) ) {

fehler:
Warning: move_uploaded_file(./avatare/Daniel) [function.move-uploaded-file]: failed to open stream: Permission denied in I:\xampp\htdocs\Browsergame\secondstep.php on line 30



Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'I:\xampp\tmp\php44.tmp' to './avatare/Daniel' in I:\xampp\htdocs\Browsergame\secondstep.php on line 30

30 ist die zeile:
if( !move_uploaded_file($_FILES['datei']['tmp_name'], $uploaddir) ]

Dieser Beitrag wurde von Neverball bearbeitet: 24. Mai 2009 - 18:42

0

#6 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 24. Mai 2009 - 18:51

Wurde der Ordner I:\xampp\htdocs\Browsergame\avatare\Daniel angelegt, bzw. existiert dieser?
Ist der Ordner eventuell schreibgeschützt?
0

#7 Mitglied ist offline   Neverball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 584
  • Beigetreten: 07. Juli 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Cuxiland

geschrieben 24. Mai 2009 - 18:53

ja er wird angelegt so wie ich das haben wollte.
Das mit schreibgeschützt du hast recht das ist der! wie mache ich das , das er das nicht mehr ist beim erstellen?^^
0

#8 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 24. Mai 2009 - 19:00

Normalerweise solltest du unter Windows sowieso volle Rechte haben.
Ist vielleicht der Ordner "avatare" auch Schreibgeschützt?

Übrigens die Angabe "0777" benötigst du nicht:
mkdir ("avatare/".$benutzername, 0777)

Windows kann kein chmod und somit ist die Angabe der Rechte überflüssig (wenn du es nicht nach Unix portieren möchtest).
0

#9 Mitglied ist offline   Neverball 

  • Gruppe: aktive Mitglieder
  • Beiträge: 584
  • Beigetreten: 07. Juli 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Cuxiland

geschrieben 24. Mai 2009 - 19:03

joa hab ich ja aber das schreibgeschützt geht nicht raus, egal was ich mache...
ich liebe windows :-D

wenn ich es hochlade dann ist es auf einen linux webspace daher lasse ich es drinne.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0