Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder Hochladen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bilder Hochladen

    Bilder Hochladen


    incl1.html :

    PHP-Code:
    <form action="incl2.php" method="post" enctype="multipart/form-data">
    <
    input type="file" name="datei"><br>
    <
    input type="submit" value="Hochladen">
    </
    form
    incl2.php :

    PHP-Code:
    <?php

     ini_set
    ('display_errors'true);
     
    error_reporting(E_ALL); 
    //erlaubte dateitypen
    $erlaubt =  array(=> "image/x-icon",=> "image/jpg",=> "image/png",=> "image/gif");
    //maximale dateigroesse
    $max 100000;
    //generirte name des Bildes
    $rand "0";
    //Verzeichnis vohin die Bilder gespeichert werden sollen
    $verzeichnis "upload/";
    /*function rand(&$rand)
    {
        
    } */
    function image(&$rand)
    {
    //generiere dateiname
        
    $date date("Y-d-mH:i:s");
        
    $rand $date.$_FILES['datei']['name']; 
    }
    function 
    check($erlaubt,$max)
    {
    //uberprufe ob nicht zu gross und ob richtige dateiende
          
    if (empty($_FILES['datei']['name']))
          {
                die(
    "Na, Keine Bilder ? <a href=incl1.php>Nochmal</a>");
          }
          if (
    array_search($_FILES['datei']['type'],$erlaubt) === "0")
          {
                     echo 
    $_FILES['datei']['type'];
                     die(
    "Nur bilder sind erlaubt! <a href=incl1.php>Nochmal</a>");
          }
          if (
    $_FILES['datei']['size'] > $max)
          {
                     die(
    "Ihr Foto bzw. Bild darf nicht gr&ouml;sser sein als <b>{$max}</b> Byte <a href=incl1.php>Nochmal</a>");
          }
                  


        
    check($erlaubt,$max);
        
    image($rand);
        
    $filename $verzeichnis.$rand;
        
    //leerzeichen durch nix ersetzen(fur URL wichtig)
        
    $filename str_replace(" ","",$filename);

        
          if (
    move_uploaded_file($_FILES['datei']['tmp_name'], $filename))
          {
                 echo 
    "<center>";
                 echo 
    "Bild wurde erfolgreich hochgeladen.<br><img src=".$filename."><br>";
                 echo 
    "<br>HTML: <input type=text size=70 value='<img src=".$filename.">'><br>";
                 echo 
    "<br>BB Code: <input type=text size=70 value='[IMG]".$filename."[/IMG]'><br>";
                 echo 
    "<a href=incl.php>Weitere Bilder Hochladen</a>";
                 echo 
    "</center>";
          }

    ?>


  • #2
    Deine Auswahl erlaubter Mime-Typen berücksichtigt nicht die IE-Problematik bei JPEGs; außerdem ist das bloße Überprüfen einer vom Client gemachten Angabe noch lange kein Garant dafür, dass es sich dann auch wirklich um Bilder handelt.

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      Deine Auswahl erlaubter Mime-Typen berücksichtigt nicht die IE-Problematik bei JPEGs; außerdem ist das bloße Überprüfen einer vom Client gemachten Angabe noch lange kein Garant dafür, dass es sich dann auch wirklich um Bilder handelt.
      Wie kann man es dann ueberpruefen ?

      Kommentar


      • #4
        Zitat von ChrisB Beitrag anzeigen
        Deine Auswahl erlaubter Mime-Typen berücksichtigt nicht die IE-Problematik bei JPEGs
        Soll man deiner Meinung nach JPEG bilder hochladen verbieten ?

        Kommentar


        • #5
          Zitat von md5() Beitrag anzeigen
          Wie kann man es dann ueberpruefen ?
          getimagesize wäre eine zuverlässigere Methode.

          Und von verbieten war keine Rede - nur von der Problematik im IE, der liefert nicht image/jpg, sondern (IIRC) image/pjpeg. (Weiß nicht, ob er das immer noch macht, oder nur in älteren Versionen.)

          Kommentar


          • #6
            aufjedenfall auch die Dateiendung prüfen, denn von der hängt letzten Endes die Ausführbarkeit der Datei ab.

            Kommentar


            • #7
              Zitat von ChrisB Beitrag anzeigen
              getimagesize wäre eine zuverlässigere Methode
              Auch das kannst du faelschen, in dem du die Dateisignatur am Anfang der Datei aenderst. Kann man sehr einfach im PHP-Sourcecode nachschauen, auf was das geprueft wird. Sicherer waere wohl das Jagen der Bilddatei durch einen Imageprozess. Aber zugegeben etwas uebertrieben.
              "Mein Name ist Lohse, ich kaufe hier ein."

              Kommentar

              Lädt...
              X