[PHP] Functie werkt in explorer maar niet in firefox.

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Ik heb een functie die mijn file input controleer op op grote, type en formaat.
Echter werkt deze functie prima in internet Explorer maar niet in Firefox.

Ook heb ik mijn upload getest zonder deze check van mij functie en dan werkt het prima.

Het ziet er dus naar uit dat firefox niet overweg kan met deze functie.

Dit lijkt mij sterk maar de waarheid is toch anders.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function Photo_Control($fPhoto, $iMaxSize = 2500000, $iMaxWidth = 400, $iMaxHeight = 400) {

    $bReturn = false;
    $fPhoto_tmp_name = $_FILES[$fPhoto]['tmp_name'];

    if ($fPhoto_tmp_name == "none")
    return $bReturn;

    $filesize = filesize($fPhoto_tmp_name);
    $imagesize = getimagesize($fPhoto_tmp_name);

    if (((($filesize <= $iMaxSize) OR ($imagesize[0] <= $iMaxWidth) OR ($imagesize[1] <= $iMaxHeight)) AND (($_FILES[$fPhoto]['type'] == "image/gif") OR ($_FILES[$fPhoto]['type'] == "image/pjpeg"))))
    $bReturn = true;

    return $bReturn;
}

  • mithras
  • Registratie: Maart 2003
  • Niet online
image/pjpeg is ook geen geldige mime type. Kennelijk wel en geldig mime type voor progressive jpegs. Toch is je check redelijk basic (what about png's?).

Wat zeggen al je debug outputs die je hebt gedaan?

[ Voor 39% gewijzigd door mithras op 10-09-2009 10:58 ]


  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

Hmm...dat is onmogelijk aangezien PHP serverside is...
Ik vermoed dat je HTML form niet helemaal in orde is. Kan je die eens posten ?

Edit:
More on pjpeg:
http://www.houseoffusion....thread.cfm/threadid:23554
Het wordt alleen gebruikt voor het renderen van jpeg's en niet voor het uploaden...

[ Voor 40% gewijzigd door Mike2k op 10-09-2009 10:53 ]

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

En wat doet een, ik noem maar wat, print_r of var_dump op $_FILES[$fPhoto]?

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Verwijderd

Lijkt mij inderdaad iets te maken met image/pjpeg ... hier misschien meer info: IE image/pjpeg instead of image/jpeg

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Firefox kan prima overweg met die functie maar als jij het verkeerde MIME-type controleert, dan kan Firefox daar ook niks mee. Met andere woorden: controleer op image/pjpeg én op image/jpeg en ineens zal het gaan werken. Waar je ook achter had kunnen komen als je gewoon even gedebugd had en het ontvangen MIME-type had afgedrukt. Zie ook Programming FAQ - Debuggen: hoe doe ik dat? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Probleem opgelost, na dat ik image/jpeg heb toegevoegd.

Mijn dank is groot!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Lees ook mijn eerste post even. Er zijn meer soorten afbeeldingen dan alleen gif en jpeg (al dan niet progressief). Je hebt nu 3 van de 20 image/* mime types gecovered. Ik zou je "check" wat uitbreiden dat je niet met een ander afbeeldingsformaat weer tegen hetzelfde probleem aanloopt.

  • GlowMouse
  • Registratie: November 2002
  • Niet online
En $_FILES[$fPhoto]['type'] is user-input. Ik krijg met die check makkelijk php-files op je server.

  • hbongers
  • Registratie: Januari 2002
  • Laatst online: 18-09 10:40
En dat terwijl het juiste (serverside) mimetype wel al in $imagesize staat.

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Internet Explorer gebruikt dus image/pjpeg en overige browsers doen image/jpeg.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je check slaat ook helemaal nergens op. Men neme een smal maar idioot hoog en groot plaatje en die functie keurt hem goed. 8)7

{signature}


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Voutloos schreef op donderdag 10 september 2009 @ 15:47:
Je check slaat ook helemaal nergens op. Men neme een smal maar idioot hoog en groot plaatje en die functie keurt hem goed. 8)7
Het is nog veel erger. Zolang het bestand maar kleiner is dan de maxsize en je je request een beetje aanpast kun je alles wat je maar wilt uploaden.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
O, dat kan inderdaad nog veel leuker zijn. :P

offtopic:
Overigens imo ook redelijk suffe visual basic like code style. Return maar gewoon meteen true of false, en zet regeltje 12 maar wat overzichtelijker neer. Of splits die regel maar gewoon op voor de verschillende soorten foute input.

{signature}

Pagina: 1