Avatar billede kongfjong Nybegynder
09. juni 2005 - 18:45 Der er 13 kommentarer og
1 løsning

Problem med filopload og Mozilla

Hej,

Jeg har en side, hvor brugerne gerne skal kunne oploade et brugerbillede. Problemet er at jeg kun har fået det til at virke i IE og ikke i Firefox. Jeg tjekker på filtypen for kun at godkende jpeg og gif. Nogle der har en idé til hvad jeg gørgelt?

$file_dir = "billedmappe";
   
foreach ($_FILES as $file_name => $file_array)
{
    if ($file_array['size'] <= 204800)
    {
    if ($file_array['type'] == 'image/gif' || $file_array['type'] == 'image/pjpeg')
    {
            if ($file_array['type'] == 'image/gif')
        {
            $filnavn = md5($file_array['name']).'.gif';
        }
            else
        {
        $filnavn = md5($file_array['name']).'.jpg';
        }
       
            if (is_uploaded_file($file_array['tmp_name']))
        {
        $brugerid = intval($_POST[skjultBrugerID]);
        $tid = time();
                 
        $ins = "DATABASE-KALD";
        $ins_res = mysql_query($ins) or die(mysql_error());
                       
        if ($ins_res == 1)
        {
            move_uploaded_file($file_array['tmp_name'], "$file_dir/$filnavn") or die ("Couldn't copy");
                           
            header("Location: Destination");
                exit;
                }
            else
            {
                header("Location: Destination");
                    exit;
            }
        }
    }
    else
    {
        header("Location: Destination");
        exit;
        }
    }
    else
    {
    header("Location: Destination");
    exit;
    }
}
Avatar billede claus_joergensen Nybegynder
09. juni 2005 - 19:22 #1
Det burde jo faktisk kun virke i Mozilla, det IE ikke sender $_FILES['fil']['type'] med.

Anyway, så er der ingen rigtig måde at checke mime-type i php, så du bliver nød til at checke extension (.jpg || .gif || .png) istedet for.
Avatar billede sukos Juniormester
09. juni 2005 - 19:38 #2
"Det burde jo faktisk kun virke i Mozilla, det IE ikke sender $_FILES['fil']['type'] med."
af hva' for noget?

Men et script til at uploade billeder:
http://www.showsource.dk/php/vis_script.php?id=1118177424
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 20:28 #3
Her er en der har det modsatte problem. Du kan sikkert gætte hvad problemet er... ;)

Men du skal *ikke* stole på den medsendte type. Enhver hacker kan sende en .php fil som om det var et gifbillede. Du *skal* checke på extension. Men det er ok også at checke typen.
Avatar billede erikjacobsen Ekspert
09. juni 2005 - 20:28 #4
Avatar billede kongfjong Nybegynder
10. juni 2005 - 10:01 #5
Men kan enhver ikke lave om på extension også?
Avatar billede sukos Juniormester
10. juni 2005 - 10:09 #6
Jo, og derfor, nu det er et billede som skal uploades, kan du jo så gi' filen det filnavn som hører til "typen", gif, jpg, png
Eller, ihvertfald for de filtyper som getimagesize() "genkender"
Avatar billede kongfjong Nybegynder
10. juni 2005 - 12:30 #7
Nåååå sådu mener at jeg først tjekker på om MIME typen er korrekt. Hvis den så er det, tjekker jeg extension. Hvis den er rigtig oploader jeg, men hvis extension er forkert (Og MIME type rigtig) skal jeg tildele filen det rigtige extension?

Men er det ikke det jeg gør i mit script?
Avatar billede erikjacobsen Ekspert
10. juni 2005 - 12:39 #8
Det er ikke noget problem at extension ikke passer, for tillader du kun .jpg og .gif kan en hacker ikke udføre kode på serveren. Det er li'som det vi skal undgå.

Altså: Du skal tjekke extension. Du kan checke MIME-type. Hvis der er noget galt i extension (og evt MIME-type), skal du blot stoppe.
Avatar billede kongfjong Nybegynder
10. juni 2005 - 13:14 #9
Okay, lyder simpelt;)
Avatar billede kongfjong Nybegynder
10. juni 2005 - 13:15 #10
Ved ikke om I evt også kunne hjælpe her: http://www.eksperten.dk/spm/624475 ?
Avatar billede sone Nybegynder
10. juni 2005 - 13:59 #11
Mig bekendt er det fordi Firefox sender type som image/jpeg, og IE sender typen som image/pjpeg.
Avatar billede kongfjong Nybegynder
10. juni 2005 - 14:24 #12
sone, det du skriver er faktisk det samme som på det link erik sendte:)
Avatar billede kongfjong Nybegynder
11. juni 2005 - 23:26 #13
Har jeg´ikke ret i, at mit scropt er godt nok, nå nu jeg, når jeg har tjekket om MIME typen er 'rigtig' selv giver filen et navn der enten ender på .gif eller .jpg? Er jeg så ikke på den sikre side?
Avatar billede kongfjong Nybegynder
21. november 2005 - 22:16 #14
Lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester