Ankündigung

Einklappen
Keine Ankündigung bisher.

Jpg jpeg

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

  • Jpg jpeg

    Hallo zusammen,
    Ich habe ein Problem. Ich habe in meiner PHP seite die Möglichkeit Bilder Up zu loaden. Wenn ich .jpg bilder hochlade habe ich keinerlei probleme sobald es aber .jpeg (i-Phone) bilder uploade verarbeitet er diese nicht.

    PHP-Code:
    if(file_exists("./datastore/".$_GET['id']."/".$newname."_pix.zip")) {
    $dir "datastore/".$id."/".$newname."/";
    $handle = @opendir($dir);
    while (
    $file = @readdir ($handle)) {
    if (
    substr($file,-4) == '.jpg' || substr($file,-4) == '.JPG' || substr($file,-4) == '.JPEG' || substr($file,-4) == '.jpeg' ) {
    if(
    strpos($file,"_pix_")!==false) { 
    wiso kann er es nicht erkennen und wo liegt das problem ?


  • #2
    Wie lange ist denn die Zeichenkette ".jpeg" bzw. ".JPEG" und was ist der zweite Parameter von substr?

    Sollte die Überprüfung auf Dateiendung die einzige Überprüfung des Dateityps beim Upload sein, hast du dir eine Sicherheitslücke eingebaut. So lassen sich jegliche Arten von Dateien (auch PHP Scripts) hochladen und evtl. auch ausführen.
    In der Regel überprüft man auch noch den Mime-Type.
    "Software is like Sex, it's best if it's free." - Linus Torvalds

    Kommentar


    • #3
      Ohh ok muss ich überarbeiten.
      Kann ich eigentlich sagen dass alle .jpeg dateien in jpg umgewandelt werden sollen finde da nix dazu ob das geht oder nicht

      Kommentar


      • #4
        Dazu müsste man den File Upload sehen.
        "Software is like Sex, it's best if it's free." - Linus Torvalds

        Kommentar


        • #5
          Die Endung ist austauschbar. Du kannst die umbenennen in jpg oder in jpeg. Das Ganze hat mal wieder seinen Ursprung in den alten Zeiten von DOS als Windows als Dateiendung nur 3 Buchstaben kannte, und daher aus dem Format JPEG eine Dateiendung jpg wurde. .

          Kommentar


          • #6
            Zitat von protestix Beitrag anzeigen
            Die Endung ist austauschbar. Du kannst die umbenennen in jpg oder in jpeg. Das Ganze hat mal wieder seinen Ursprung in den alten Zeiten von DOS als Windows als Dateiendung nur 3 Buchstaben kannte, und daher aus dem Format JPEG eine Dateiendung jpg wurde. .
            ja das problem ist das das script mit jepg nicht verarbeitet. Wenn ich das richtig verstehe, kann ich bei der umbenennung der Datei auch gleich das vormit in jpg um wandeln. oder soll ich das is einem kleinen Script machen ?

            Kommentar


            • #7
              Logisch.
              Was ergibt denn
              PHP-Code:
              var_dump(strlen('.jpg'));
              var_dump(strlen('.jpeg')); 
              Du trennst aber mit substring immer 4 Stellen von hinten angefangen ab was bei .jpeg dann jpeg ergibt.
              Und jpeg ohne Punkt ist nun mal nicht das gleiche, wie jpeg mit einem Punkt davor.

              Sieh dazu auch Beitrag #2, wo das schon angesprochen wurde.

              Kommentar


              • #8
                PHP-Code:
                if (substr($file,-4) == '.jpg' || substr($file,-4) == '.JPG' || substr($file,-4) == '.JPEG' || substr($file,-4) == '.jpeg' ) { 
                Das sieht gruselig aus...

                PHP-Code:
                $some_path ='/var/www/somefile.JpeG';
                $allowed_ext = ['jpg''jpeg'];

                $pi pathinfostrtolower($some_path) );
                if (
                in_array($pi['extension'], $allowed_ext)) { 
                    echo 
                $some_path.' allowed';

                }else {
                    echo 
                $some_path.' not allowed';

                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  alex388 bitte PHP-Codetags hier im Forum nutzen.


                  Definitiv im falschen Subforum, daher:

                  MOD: Verschoben von PHP-Fortgeschritten
                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Weiter solltest du beachten das du $_GET nicht direkt verwenden solltest. Traue niemals irgendwelchen Angaben, die von aussen kommen.
                    Wenn der Parameter id eine Zahl mit einem bestimmten Wertebereich sein darf, dann prüfe das vorab und lasse nur gültige Werte passieren.

                    Diesen Teil
                    PHP-Code:
                    $handle = @opendir($dir);
                    while (
                    $file = @readdir ($handle)) {
                    if (
                    substr($file,-4) == '.jpg' || substr($file,-4) == '.JPG' || substr($file,-4) == '.JPEG' || substr($file,-4) == '.jpeg' ) {
                    if(
                    strpos($file,"_pix_")!==false) { 
                    Kannst du mit einer einzigen Zeile und der glob() Funktion abdecken.
                    PHP-Code:
                    $files glob($dir "*_pix_*.{jpg,JPG,jpeg,JPEG}"GLOB_BRACE) ); 



                    Kommentar

                    Lädt...
                    X