MyBB.de Forum

Normale Version: Diskussion: MyBB 1.1.8 veröffentlicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Code:
Find:

--

    // Check if this is a valid image or not

    $img_dimensions = @getimagesize($mybb->settings['avataruploadpath']."/".$filename);

--



UNDER it add:

--

    // Check a list of known MIME types to establish what kind of avatar we're uploading

    switch(strtolower($avatar['type']))

    {

        case "image/gif":

            $img_type =  1;

            break;

        case "image/jpeg":

        case "image/x-jpeg":

        case "image/pjpeg":

            $img_type = 2;

            break;

        case "image/png":

        case "image/x-png":

            $img_type = 3;

            break;

        default:

            $img_type = 0;

    }

    

    // Check if the uploaded file type matches the correct image type (returned by getimagesize)

    if($img_dimensions[2] != $img_type || $img_type == 0)

    {

        @unlink($mybb->settings['avataruploadpath']."/".$filename);

        $ret['error'] = $lang->error_uploadfailed;

        return $ret;        

    }

funktionierte so bei mir nicht. Ich war aktuell auf 1.1.7 und habe alle Updates ab 1.1.1 mitgemacht, aber die Variable $img_dimensions wurde bei mir an der entsprechenden Stelle nicht definiert.

Bei mir musste unter:
Code:
    // Lets just double check that it exists
    if(!file_exists($mybb->settings['avataruploadpath']."/".$filename))
    {
        $ret['error'] = $lang->error_uploadfailed;
        return $ret;
    }

folgendes eingefügt werden:
Code:
    // Check if this is a valid image or not
    $img_dimensions = @getimagesize($mybb->settings['avataruploadpath']."/".$filename);

    // Check a list of known MIME types to establish what kind of avatar we're uploading
    switch(strtolower($avatar['type']))
    {
        case "image/gif":
            $img_type =  1;
            break;
        case "image/jpeg":
        case "image/x-jpeg":
        case "image/pjpeg":
            $img_type = 2;
            break;
        case "image/png":
        case "image/x-png":
            $img_type = 3;
            break;
        default:
            $img_type = 0;
    }
    
    // Check if the uploaded file type matches the correct image type (returned by getimagesize)
    if($img_dimensions[2] != $img_type || $img_type == 0)
    {
        @unlink($mybb->settings['avataruploadpath']."/".$filename);
        $ret['error'] = $lang->error_uploadfailed;
        return $ret;        
    }

    if(!is_array($img_dimensions))
    {
        $ret['error'] = $lang->error_uploadfailed;
        return $ret;
    }

Damit stimmt der Code wieder überein...

Grüße
BamBam

NetHunter

Kann ich nicht bestätigen @BamBam.

Die Variable existiert in 1.1.7!
Bei mir nicht. Und das einzige mal seit dem Einspielen von 1.1.1, daß ich functions_upload angefasst habe, war beim Aufspielen von 1.1.5

Und in 1.1.1 existiert die Variable noch nicht. Allerdings mache ich die Updates immer händisch. Vielleicht wurde mal etwas an dem Code geändert, ohne daß das gesondert vermerkt wurde.
Hab gerade mal die fertig gelieferten Dateien aus dem 1.1.5-Update bzgl. functions_upload untersucht, und da ist sie bereits drin. Aber wie gesagt, ich update händisch.

Ist ja auch egal, jetzt passt es ja wieder. Und vielleicht haben andere es genauso gemacht wie ich. ;-)

BamBam schrieb:Ist ja auch egal, jetzt passt es ja wieder. Und vielleicht haben andere es genauso gemacht wie ich. ;-)

Na, so ganz egal wohl nicht! Ist bei mir - bei haargenau der gleichen Vorgehensweise - auf´s "i-Tüpfelchen" genau so!

Denke also auch, dass sich da tatsächlich bereits bei einem früheren manuellen Update ein Code-Fehler eingeschlichen hat.

Wohl eher eine Code-Änderung nicht in dem Text-Dokument für die manuellen Anpassungen dokumentiert wurde.
Danke an BamBam,

denn mir ging's genauso - aber nun müsste alles wieder passen!