Bildgröße in Pixel bei Dateiupload auslesen

Ja hallo erstmal,

ich bastle mal wieder an meiner Clansite. Und hab da folgendes Problem. Auf meiner Site kann man über ein Formular ein Avatar hoch laden. Dabei sollen die Dateiinformationen auch gleich überprüft und in einer DB gespeichert werden. Das funktioniert soweit auch einwandfrei. Nur möchte ich gleich noch die Abmessungen der Bilddatei in Pixeln (Höhe und Breite) überprüfen. Und da ist mein Problem. Ich find einfach den Befehl der mir diese Abmessungen ausgibt nicht. Ich weis das es geht. Hab schon ewigkeiten gesucht, aber leider nix gefunden.

Hier ist mal noch der Code den ich bis jetzt habe. Hab das auch mal hier in einem Tut. gefunden. Ich wäre echt dankbar wenn mir jemand auf die Sprünge helfen könnte.

PHP:
 			$tempname	= $_FILES['file']['tmp_name'];
 			$name 		= $_FILES['file']['name'];
 			$type 		= $_FILES['file']['type'];
 			$size 		= $_FILES['file']['size'];
  			
  			
  			if (!empty ($name)) {
 		 		 	
 			if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg") {
 			$err[] = "<h1>nur gif, jpg und jpeg Dateien dürfen hochgeladen werden.</h1>";
  			}
  			
  			if($size > "20000") {
 			$err[] = "<h1>Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 15 KB!</h1>";
  			} 
  			
  			if(empty($err)) {
  			
  			$exp = explode('.',$name);
  			$ext = $exp[count($exp)-1]; 
  			
 		 mysql_query("update benutzerdaten set Avatar = './upload/avatare/".$_POST['id'].".$ext' WHERE id = '".$_POST['id']."' ");
  			
  			$id = $_POST['id'];
  			copy($tempname, "./upload/avatare/$id.$ext");
 			 echo "<h1>Die Datei $name wurde erfolgreich hochgeladen!</h1>";
  			} 
  			
  			else {
  			foreach($err as $error)
  			echo "$error<br>";
  			} }
 
TheRealSpeedster hat gesagt.:
PHP:
 		 mysql_query("update benutzerdaten set Avatar = './upload/avatare/".$_POST['id'].".$ext' WHERE id = '".$_POST['id']."' ");
Vorsicht! Mit dieser Zeile kann man allerhand anstellen. Beispielsweise wäre es eine Leichtigkeit, sämtliche Avatare in einem Rutsch zu ändern, indem man in der Anfrage das Feld id bspw. auf 1.jpg'-- setzt. Fremde Avatare zu verändert stellt so übrigens auch kein Problem dar.
 
Wenn $_POST['id'] auf „1.jpg'--“ gesetzt ist (und $ext auf „jpg“, was aber nebensächlich ist), ergibt sich dadurch folgende Abfrage:
Code:
update benutzerdaten set Avatar = './upload/avatare/1.jpg'--.jpg' WHERE id = '1.jpg'--'
Der ausgegraute Teil der Abfrage wird von MySQL nicht verarbeitet, da -- einen Kommentar einleitet. Was die Abfrage anstellt, sollte klar sein.
 
TheRealSpeedster: Mach dich mal zum Thema MySQL Injections schlau (siehe z.B. »Writing Secure PHP« Teil 1, 2 und 3). Am besten jagst du alle Formulardaten, die in einem MySQL-Query vorkommen, erst durch die Funktion [phpf]mysql_real_escape_string[/phpf].
 
Die $_POST['id'] ergibt sich daraus

PHP:
    $abfrage	= "SELECT * FROM benutzerdaten WHERE id = $_SESSION[user_id]";
   $ergebnis   = mysql_query($abfrage);
   while($row  = mysql_fetch_object($ergebnis)) {
     
     
  echo"		<input name=\"id\" type=\"hidden\" value=\"",
     				 $row->id,
     				 "\">",
 		 "<input class=\"ab\" name=\"editprofil\" type=\"submit\" value=\"Ändern\">"; }


Also wüste ich jetzt nicht wie jemand die $_POST['id'] auf „1.jpg'--“ setzen könnte.
 
Zuletzt bearbeitet:
Zurück