kostenloser Webspace werbefrei: lima-city


dateitypen prüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    k***********f

    Sers Leude

    ich wollt mal fragen, wie ich bei einem Upload (mit if-Anweisung) ganz ALLGEMEIN pr?fe, ob es sich um ein Bild oder was anderes handelt.

    und wenn mir schonmal so ein Thema auf machen, k?nnen wa auc gleich eine Sammlung von Definitionen auf machen ^^
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also einen einfachen Test kannst du anhand der Dateiendungen vornehmen. L?sst sich allerdings ziemlich leicht austricksen.
    'Ne zweite M?glichkeit w?re, dass du versuchst die Datei unter Verwendung einer Grafikbibiliothek (libjpeg, libpng etc.) als ein bestimmter Dateityp zu laden. Wenn das funktioniert, stimmt der Typ.
    Schlie?lich bleibt noch die M?glichkeit, das du dich mal ?ber den (bin?ren) Aufbau verschiedener Bildformate informierst und eine entsprechende Pr?froutine selbst schreibst. D?rfte allerdings relativ schwierig werden, nehm' ich mal an.

    knuddelstreff schrieb:
    und wenn mir schonmal so ein Thema auf machen, k?nnen wa auc gleich eine Sammlung von Definitionen auf machen ^^


    Das verstehe ich nicht. Was genau willst du?

    LG,
    thw
  4. Autor dieses Themas

    k***********f

    joa, was mein ich damit genau.
    also eine kleine Bibliotek auf machen.
    unter so ner Definition versteh ich sowas.

    image/gif

    so pr?ft man ja auf giftypen.
    Jetzt brauch ich aber noch seeeeeeeehr viel mehr Typen.
    und f?r Bilder einen ganz allgemeinen Parameter, also, dass es egal ist welches Bildformat es ist, hauptsache es ist eins...
  5. s******a

    Die netten Server laufen doch bestimmt unter Linux, und da ist es mit dem "file-Befehl doch ein leichtes, sich den echten Dateityp, unabh?ngig vom Dateinamen, ausspucken zu lassen, dann br?uchte man noch eine Tabelle/Datenbank mit einer Black-/Whitelist von Dateitypen, und pro hochgeladener Datei wird die Abfrage durchgef?hrt...




    PS: die Profis umgehen das dann und nehmen einfach FTP...
  6. Autor dieses Themas

    k***********f

    um genau zu sein brauche ich es um das hier zu pr?fen:

    $pixel=getimagesize("$data");
    $width=$pixel[0];
    $height=$pixel[1];

    mit den 3 Zeilen bekommt man die Bildproportionen raus. das hab ich bei meinem Upload eingebaut.
    Ist die zu uploadende Datei aber kein Bild, kommen da 2 ganz bl?de Fehlermeldungen:

    1)

    Warning: getimagesize(): Unable to access index.php in /home/webpages/lima-city/knuddelstreff/html/index2.php on line 47

    2)

    Warning: getimagesize(index.php): failed to open stream: No such file or directory in /home/webpages/lima-city/knuddelstreff/html/index2.php on line 47

    mit ner IF-Anweisung hab ichs jetzt gerade mal versucht. das klapt auch so weit... die Fehlermeldungen kommen nicht mehr, egal bei welcher Datei... was aber auch nicht mehr mitgeliefert wird, sind die Bildproportionen.
    dann ham ich die 3 Zeilen mal an ner anderen Stelle hingesetzt (ganz unten vom script).
    Das hat bei richtiger Bilddatei auc wieder geklapt... aber mal wieder net bei anderen.

    ich screib einfac mal das ganze Script hin:

    $verbindung = mysql_connect ("mysql.lima-city.de",
    "USER", "Passwort")
    or die ("keine Verbindung m?glich.
     Benutzername oder Passwort sind falsch");
    
    mysql_select_db("DB528542912")
    or die ("Die Datenbank existiert nicht.");
    
             $data = $_FILES['userfile']['name'];
             $kategorie = $_POST['kategorie'];
             
             $pixel=getimagesize("$data");
             $width=$pixel[0];
             $height=$pixel[1];  
             
             
             if($data=="")
       {
       echo "<p></p>";
       }
    else
       {
       if(file_exists('uploadbilder/'.$data.''))
       {
       echo "Diese Datei existiert bereits. Bitte benennen Sie die Datei um!";
       }
    else
       {  
    // In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden. 
    // In PHP kleiner als 4.0.3 verwenden man copy() und is_uploaded_file() anstatt von 
    // move_uploaded_file() 
    
    //Deklaration der g?ltigen mimetypen 
    $mimearray=array("image/gif", "image/jpeg", "image/pjpeg","image/x-png","image/png"); 
    
    //Upload verzeichnis 
    $uploaddir = 'uploadbilder/'; 
    
    //Pr?fen ob Formular gesendet wurde 
    if($_POST['senden']==true){ 
       // Pr?fung auf G?ltigkeit des Vordeklarierten MimeTyps 
       if(in_array($_FILES['userfile']['type'],$mimearray)) 
       {
          // dateiupload 
          if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) { 
              print "Datei ist g?ltig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n"; 
             print "<br>"; 
              print "Name: ".$_FILES['userfile']['name']."<br>"; 
             print "Gr??e: ".$_FILES['userfile']['size']."<br>";    
             print "Typ: ".$_FILES['userfile']['type']."<br>";
             
    
    
    
    $eintrag = "INSERT INTO uploadbilder
    (bild, kategorie, breite, hoehe)
    VALUES
    ('$data','$kategorie','$width','$height')";
    
    $eintragen = mysql_query($eintrag);
    if($eintragen == true)
       {
       echo "Eintrag erfolgreich in die Datenbank eingetragen";
       
       }
             }else{ 
             // Fehler beim Dateiupload 
             print "Fehler beim Dateiupload"; 
             } 
       }else{ 
       //Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht 
       print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht f?r den Upload gestatet"; 
       } 
    }   
       }
       }


    also... am Amfang, wo die 3 zeilen jetzt steen, ab ic mal die IF-Anweisung ingeschrieben:

    if($data == $mimearray)
    {
             $pixel=getimagesize("$data");
             $width=$pixel[0];
             $height=$pixel[1];
    }
    else
    {
    echo "<p></p>";
    }


    das funzt aber iwie net... die Bildproportionen werden eben net mitgeliefert...
  7. s******a

    Und was ist, wenn jemand eine simple HTML-Datei hochladen will? Der darf dann net...
  8. Autor dieses Themas

    k***********f

    ne, sind nur gif, png und jpg erlaubt... aber immer, wenn ne andere Datei, als ein Bild kommt, kommen eben diese bl?den Felermeldungen... um die get es sic ja
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!