hjkl Posted May 27, 2014 Report Share Posted May 27, 2014 Kā 100% pārliecināties, ka augšupielādēts fails tiešām ir bilde, piem., jpeg, png, bmp, nevis php fails ar nosaukumu bilde.jpeg? Quote Link to comment Share on other sites More sharing options...
gurkjis Posted May 27, 2014 Report Share Posted May 27, 2014 Ar getimagesize(), ja masīva pirmie 2 elementi (platums un augstums) ir lielāki par 0, tātad ir bilde. Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 27, 2014 Report Share Posted May 27, 2014 (edited) http://www.php.net/manual/en/function.getimagesize.php Errors/Exceptions If accessing the filename image is impossible getimagesize() will generate an error of level E_WARNING. On read error, getimagesize() will generate an error of level E_NOTICE. Lai nepiedirstu error logus: @getimagesize($file) Edited May 27, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
hjkl Posted May 28, 2014 Author Report Share Posted May 28, 2014 Kā ir ar getimagesize()[2] izmantošanu? Vai ir iespējams, piem., php failu tā modificēt, ka šis izdotu kādu no konstantēm IMAGETYPE_JPEG vai tml.? Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 28, 2014 Report Share Posted May 28, 2014 (edited) Kā ir ar getimagesize()[2] izmantošanu? Tikai kopš PHP 5.4: http://php.net/manual/en/language.types.array.php#example-102 ...ka šis izdotu kādu no konstantēm IMAGETYPE_JPEG... Tā konstante ir integer, tas tev nav enums kā Javā, to var aizstāt ar skaitli un nekas nemainīsies. Kods nekad neizdos konstanti, kods izdos integer, kuru tu salīdzināsi ar doto konstanti (kura pati ir skaitlis). Šeit ir vērtības: http://www.php.net/manual/en/function.exif-imagetype.php Edited May 28, 2014 by jurchiks Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 28, 2014 Report Share Posted May 28, 2014 Jā, ir iespējams. http://www.php.net/manual/en/function.getimagesize.phpLai nepiedirstu error logus: @getimagesize($file) To "@" simbolu vajag aizliegt un no PHP cores izravēt uz visiem laikiem. Nevajag šaut sev kājā jau laicīgi, palaist garām arī E_WARNING, jo tas, ka logā nekrājas notices, ir, protams, ļoti svarīgi, jo logu tu katru dienu lasi un tam ir jābūt tīram no paziņojumiem, ka kāds mēģina kko muhļīt tavai lapai ar nepareiziem failiem. Quote Link to comment Share on other sites More sharing options...
hjkl Posted May 28, 2014 Author Report Share Posted May 28, 2014 Jā, ir iespējams. Kā? Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 28, 2014 Report Share Posted May 28, 2014 Nu bet viņam taču vienkārši vajag pārbaudīt, vai fails ir bilde, un ja nav, tad pofig. Tas warnings neko nemainīs, tikai piedrazos logus. Pārsvarā tas "@" ir slikta lieta, bet šajā gadījumā, IMHO, pilnīgi pieņemami. Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 28, 2014 Report Share Posted May 28, 2014 Šitā: if ($imagedata['mime']) { return IMAGETYPE_JPEG; } A tev kaut kā traucē, ka logos rakstās? Tu viņus pārlasi katru dienu kā kādus dzejoļu krājumus? Ir daudz vienkāršāk vienreiz nenospiest taustiņu, kaut vai slinkuma pēc, jo ir jāspiež un it kā jāpiedomā līdzi, ko tad tas tagad nozīmē, nekā pēc tam ilgi brīnīties. Quote Link to comment Share on other sites More sharing options...
hjkl Posted May 28, 2014 Author Report Share Posted May 28, 2014 (edited) Šitā: Ģeniāli. Bet ja nopietni. Kā getimagesize()[2] iegūst to integeru? Failā ir kaut kādi baiti, kas nosaka kāda veida info tur glabājas? To nevar apiet? Pieņemsim arī, ka uz servera php programmas var izpildīt tikai no failiem ar nosaukumu *.php, bet mūs interesē fails ar nosaukumu bilde.jpeg Edited May 28, 2014 by hjkl Quote Link to comment Share on other sites More sharing options...
jurchiks Posted May 28, 2014 Report Share Posted May 28, 2014 A tev kaut kā traucē, ka logos rakstās? Priekš kam logot kaut ko, kas ir pilnīgi bezsvarīgs? Tas tikai traucē saredzēt to, kas ir svarīgs. Un jā, error logus vajadzētu lasīt biežāk par reizi mēnesī. @hjkl - http://www.php.net/manual/en/function.exif-imagetype.php#113253 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 28, 2014 Report Share Posted May 28, 2014 Es nezinu vai PHP pasaule ir tādā līmenī, bet tagad visi izmanto Sentry. Check it out! Quote Link to comment Share on other sites More sharing options...
rpr Posted May 28, 2014 Report Share Posted May 28, 2014 Es nezinu vai PHP pasaule ir tādā līmenī, bet tagad visi izmanto Sentry. Check it out! domāji šo? https://www.getsentry.com/pricing/ Quote Link to comment Share on other sites More sharing options...
Kavacky Posted May 28, 2014 Report Share Posted May 28, 2014 Tas, ka useri bilžu vietā aktīvi cenšas uploadot nebildes, ir galīgi nebūtisks fakts? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted May 28, 2014 Report Share Posted May 28, 2014 > domāji šo? https://www.getsentry.com/pricing/ Yes, sir. Sentry ir pašhostējams par brīvu, though. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.