 |
09-24-2007, 12:33 PM
|
Division by zero error
|
Posts: 334
Name: El Phantasmo
Location: England, north west
|
My script for resizing images brings up loads of error messages! I cant figure out why?
Here are the errors:
Quote:
Warning: Division by zero in /var/www/inspindesign/test/upload.php on line 10
Warning: imagecreatetruecolor(): Invalid image dimensions in /var/www/inspindesign/test/upload.php on line 11
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 13
Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 16
Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 18
Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 19
|
and here is my PHP code:
PHP Code:
<?php include "../conn.php";
$upload=$_FILES['upload']['tmp_name']; list($width, $height)=getimagesize($upload);
echo $width.$height;
$newWidth=150; $newHeight=($height/width)*150; $tmp=imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); $target='images/'.$_FILES['upload']['tmp_name'];
imagejpeg($tmp, $filename, 100);
imagedestroy($src); imagedestroy($tmp);
?>
Can anyone see what is wrong with it? I think its all down to the division on line 10, but I dont see how its different to any other division?
|
|
|
|
09-24-2007, 12:49 PM
|
Re: Division by zero error
|
Posts: 166
Name: Rob
Location: UK
|
Division by zero error is your attempting to divide $height a number by width a string - should of course be the variable $width.
|
|
|
|
09-24-2007, 01:40 PM
|
Re: Division by zero error
|
Posts: 334
Name: El Phantasmo
Location: England, north west
|
Ahhhh i cant believe I didnt notice that, thanks!
there were a couple of errors that prevented it from working [that Ive fixed], but now Im presented with the text below:
Quote:
�JFIF�������<9u�/>*~7*5_/ ֒i6*ƯůV,.,h-5=-<ǩ|C<ͥxzdZivzWw'Jɦi7 Ϩ+�:e/c)Z} HU||]l=:t*fԖxFXt%'Ze8IYRwÜ[םlK)8EJT-J5NqeK0c%chEIuQoj6}]LJ5{ńz*o~j7U mH/-f7�'j뺇nP[^/w^ ֓Z_EN]FDk#$ })(HjUkSxYahړkOil*nm X$[hcsl)k+k[:D~;ũkZ*Zߵkh4{de4rA2?W qK5wq5o%ь^5N,FEiϖ)p*I TqSPVpU8->SJt+Rסʮ *NЯVs*0V9Ƥښ3;DKvW,x[ +\EyiC' ]'%.f(%*� thDi 0Prx@B%]4jX?W-o?oIKK[mI{V:WwQӾ�1vM}oQ�f Ś:u_f#Ha*-V/]KFtC>}/X,5Ln]8,F/I>Ʈ7*MX0UeaOhxMy:ֵ ~ϖ n4Q q~mÚI.F= ?w H$|M#lw�{#G^?j 8t9+ Cɮh#~7n[?x$-t?piM{OX͜=bX$X*MVs &' jp.iT*>hERr'*(SڔQS*aKcZJ "."FWyiR:t(mSq3$ �=Gz~ٞ)oG,#=j j8\c\Îp8�O_#dڏ}K: k}[i~#Kų[iNpjWۢI=5c+:`lqzxҎ &}eΓep aQTU%*2*S.+p[wC_m05v#Ökf((Jyf*7 '#Q�ל}{!�}_'=?,|'�0? !c'Θ|)pt�hXwN1W/}Ϣ:\V_:[xv7ץב̷x:~(?Ou!4y7|M� P�+f>[8s:|4�'�aq(}ZJ]l]?G?R??'}�{Oh�<ipk53#P'Mƥ\P֗5ڴ_ ?ϊ1{/:O GVŷ^!Ҧ7ngk24!&TcT֏ DM]7VZV *ݤAijvh K+kA;~ON;#1WLvuLj3:�Y )Pq8QN 1m P˲65`r-haq 8=GlEjU1xQV*Z*N,�4|B|OUƸa: #?8HR/F�cί>Fc5P(,Ibu '8vx]sk_N|U҆{{xoA[]Wr[EBL6ۓrAn`tWJ9�oG5� Eko-!2*e�Rxzro'_L=%)R^^rvN[8h9Yb)dwEE⇏G`wcEL`Ankh A/Kd$_~!Zxg"!ėgu}l}*`ȝu Dk|{fK!m^Y;WHMŻAKW !m0r?b/�/|GoOѼut]o>1NxvPoR$Mͦx-YHKH,NViWKXN*Ф({YՅ(TT Mj?pLJ&hbq5*F/4/MBO*O?'\~#ЮA咩%}{ qOU,$*a$JT/o::ja9o,%P*,*#tc C1SZ5:N*j/[m^gT]æx;_Ğ)*#t*+S5A9|@o~̞. 8i֩ i: ΏE|>ۋ5NUW5"[ңxo*13s>уxlf`ͩJ,Yc]^S:s jf 8G*l/pbqWV$eZ5JlM,b\+>VZ/>)x_6dG@kEx/0xSZ3oukk+Ԇijp>]ߴ'7g?ukBn4_Q~ x]Bݗ5z]oķd{ZIadZF>B_so~ j~OD_Zm՞a-;ϬN:ԟڗzuѯ&/m{V1i7S?_OxUO3.GX7 [Wдˍ}4K _jh7Wvm&'Ԗ/6&',X,²XPQGF8xJNXeR*u%ӦG(( IV60L_p@X|>yuhU3L5XƖpbUp�]T¥UN"ʝe U*#|oSBA#GqpGL1Ck t�x7|Y @}|C-w_]ޡ:.4-%XI )+c~Һ/^(֣ %�|Mko&+�*Ox$Vѡ{cĿO ?>$h+k7|dF6ZKfg{>-u(kM%K)eObPļO<:Q9O*xok *+0Tӌ�*óYjlVGs UY,L%Se(QFmyKOdkn0Y|%_� �|Ot&M}/궒j_jwg-_5 8oAo>3xw T<=i.%|>'3R1E�L~ ~߲C>$ǚ\~%<=-xúVA{&|/]泑*Z*Xa'_1ec}:cCEׯ\:NQjYT4 -N^K`'"xe88T-,u1R\e_<cT!NNn?\r??z: υ&tm7&4 AмK5$//tY-g./ڤ7#-2S<LtY$9Nw>A9 N Cjz*~xӶ 9>?ꣳem|]S 5*SM5W's>#(4 OJ{>-e{=#Aů-O ^H5MwL{;t{;{7ҿzw߄~*x|1H!o ܉egov>IGO*cޘLE oړ =hSMej6ve#Xblg0X fYK*lԬ:XY:njӍ89Ú2nɥl*xu '2<gř-\.YR"\)ϰ,'ԥN7JZH>25�]-}_Rh!L�|I;G*ݶkmSJ= ~5q6si,~�S=GoM#U5zu<}q og.y6Ԭ4UO!K[o7 ]�?5�Ϗ>%zNvբVh-@NQm_�FG]�oN?FrOҬ(ϋ9g:Фrw7*ݚջG~"E` Je|*<cNF&%)]ƵZj٨%ȿ�?�5ˍsv�VN} ~�56~ 1J4{Kh5.q3A�Z$I7º֧bMu)xP7WwZiu-<۳,p麔kj?X'zh19?^} ?X'SMu:.Hp1{RSÕC[kJ>*v*N/_Q8cGbV)x֓AASC(ʜT#hJ2U>H%G7� |Y<[{x~(;W~_ih|KƶDv,z춑|S��h3xW !�dO;�_xZe�?]5-TXO\j7�ݧEd-mDZ�F]oKx3ˤ:X/o<Km[ZlR gIO Ŗ(0,m٧G3 _ml؇Vj]xv|vEgԦu{0$vMgemox xiڏOF#hZp`Vgg_a{rdCwF +˘לG�>U?vM_|hgHR(^Wiq3 6yxk :kSU808Tg8ө vXrѮ7:kӞqK >' xoxB+Cj>)ITNS9*ZrՕOY� ~Қ?ۋ(ĺmկ~x__rwڅַI -n*C6~(>~_n3ia#Ŷx;]jd-of㻒.N+{1<hk"]IDF'YR$TDB9$E0�?aaV>M_6h #'%Ÿ6m#=E2 cU.OFIBt)JJT�la NTfp1((M˖Rap+֣8μ'O)x]˚u5VSX·纩UK*WV�cZ?a<)} +^'aoPL%0iņ$~"X)+i8 h#6|Q:K|<'ٵmb 4;]Qn7wIkk[ʖ6ss,}ɥ�a ZImuo56BQikl[ܫMyj#I,ı~1|%w)|X x!=�OZ.֞u:l+oVv+ok @:O150ӡ1)ۧ XN i^xw+\=fXGp#p*pW)WIӧ<-:nShʋ�Isks^^G�?fá K�QxeBuˬ=#k9�Eo�@ ?¿+)E5IIiwѣ-y-u/cUSQ*Nj#N\*<vM+oūZ~?e*O1' p~,9*G^hl�7m<12|CHV7}j쪨\?9�fA+CE$�HEjusN/'�iVO6+YNe?0 vs^�$5e_/<9(ch 1;v?o�*�kH,wW[>],ѧtFlNXYa77Eo' }hVM #\9Dk}Q7E+IdTu,L| \"Ktm*gK{$~<3;@cOm%KN *\&kOcgXO=u&X2!(CuSU&7n Ka^d)4 E}FEc74ܳmj#HLO9N<$)MӍNK()4J KkimvgG|Xi<=Mx)Qy'մ7,T[; C:Fu>CNYeqr\*^3}̷W6qY Q Z{4yOh?g $RFi"<�tSGz{$@ 1%~Ԣ/>C-mYrM, g6n%Kڷl*47� l"ƀM^Fk؍L u0pz+6*sFџq?6~J4ec,-ZQqVh~nem7ßF ]GW&RE{m#ܥ%0. ;*߳QK*7|cRGi7Dd;ڬg=/kρQWZc{v|c~:?h�= dZ*o*%=WDzq4jRnWXB[,c]]ῇFoPկa~ű�{k,5cy* RO*)@t;o%Y<%$o|@`_:% Գ3y6|m/ğ|W|/wA[|9j`:5]z JH5}&Kmuux5:Oox\x *Bŝh,uIķ6Vx-ླL pT*Aa+bSK IԪcIRԯx9N)96ܒie~g*rOg9&5 c<}%bY 6h";Y!>Kwz1ڄV^|>7JN] y3}*m{HաY"GFXf}3>E0L&eK yUd*DDg+JMtzNkk~ X5˯�"kYmxx\kj,@Ik8]lkk얚\ o1zbɷ.gJ*ݹ]yh5[_Iqeed\EO+K?-*{Z]3Ejsdt>u?ŝjs[iIg|bHb[spR?!yĒƫm-M0haEH�~Z/j #DYK}?N fAh?dK/?W?NIdVZ0j(T6bgX% ֩q=,(xe1x|%Z0kӬx.K5$rә# oY^apx e̮XM9SŪt^q:tkg%:\yˍ.=.Ovݗ h>"5Q"XMO|'е:]KMF+QײIU�#?I�0<0O�(_58ܳ,(ݐ@b�*_? 5f?JtF4Gg{I7TଚmJnSV8WK BT)`:4r*ii t0e:?a/>,ӄb1?:g
|
Ive never seen anything like this before??
Here is my new code:
PHP Code:
<?php include "../conn.php";
$upload=$_FILES['upload']['tmp_name']; $src=imagecreatefromjpeg($upload); list($width,$height)=getimagesize($upload);
$newWidth=150; $newHeight=($height/$width)*150; $tmp=imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); $target='images/'.$_FILES['upload']['tmp_name'];
imagejpeg($tmp, $filename, 100);
imagedestroy($src); imagedestroy($tmp);
?>
|
|
|
|
09-24-2007, 02:04 PM
|
Re: Division by zero error
|
Posts: 548
Name: Mike
Location: United Kingdom
|
I see the error, on line 10 your missing a $. I best also point out that you cannot divide by 0.
PHP Code:
<?php include "../conn.php";
$upload=$_FILES['upload']['tmp_name']; list($width, $height)=getimagesize($upload);
echo $width.$height;
$newWidth=150; // this is line 10. // $newHeight=($height/width)*150; - it's diving ($height/width). It's missing the $ // change it to. $newHeight=($height/$width)*150;
$tmp=imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($tmp, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); $target='images/'.$_FILES['upload']['tmp_name'];
imagejpeg($tmp, $filename, 100);
imagedestroy($src); imagedestroy($tmp);
?>
__________________
Website Services
PHP Code:
if(Added_Talkupation($post) == TRUE){iHug($you);}
Last edited by rogem002 : 09-24-2007 at 02:06 PM.
|
|
|
|
09-24-2007, 02:59 PM
|
Re: Division by zero error
|
Posts: 334
Name: El Phantasmo
Location: England, north west
|
Yeah thats what maxxximus pointed out so I fixed it. But the new error is what is in my post above yours 
|
|
|
|
09-24-2007, 03:16 PM
|
Re: Division by zero error
|
Posts: 478
|
I'm going to guess that the problem is that the browser doesn't know what the data that is being sent is meant to be. If you called the PHP script as an image source (eg. <img src="thisscript.php">) then it would have a clue, but at the moment it has none.
Instead you need to tell it what the data is explicitly. You can do this by sending headers such as:
header('Content-type: image/jpg');
header('Content-Length: ' . strlen($tmp));
or something similar. This also assumes you haven't done anything silly like sent whitespace in your include files or some such thing.
|
|
|
|
09-26-2007, 09:47 AM
|
Re: Division by zero error
|
Posts: 334
Name: El Phantasmo
Location: England, north west
|
Hmmm I tried adding
PHP Code:
header('Content-type: image/jpg');
after the include statement, and it just presented me the URL of the page?
Ive tried the original script I was using but now I get this!
Quote:
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: in /var/www/inspindesign/test/upload.php on line 5
Warning: imagecreatefromjpeg(): '/tmp/phpXlZf7c' is not a valid JPEG file in /var/www/inspindesign/test/upload.php on line 5
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 13
�JFIF�������
Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/inspindesign/test/upload.php on line 18
|
Could it be that the server I have doesnt properly support the GD library? It is a free PHP server afterall.
|
|
|
|
09-26-2007, 09:58 AM
|
Re: Division by zero error
|
Posts: 5
Name: Daniel Vojt
|
Based on the error messages you received, it looks like GD library is supported on your server - those specific messages are kicked out by the GD library functions. It looks like the file you tried to upload for resizing isn't recognized as a JPG... is it?
|
|
|
|
09-26-2007, 10:05 AM
|
Re: Division by zero error
|
Posts: 478
|
mediatriks is right... it could also be that your upload got truncated for some reason (eg. trying to upload more data than the server allows) or maybe it's a permissions thing?
|
|
|
|
09-26-2007, 10:23 AM
|
Re: Division by zero error
|
Posts: 334
Name: El Phantasmo
Location: England, north west
|
I dont think so, I tried setting the permissions on the folder as 777 and still it doesnt work
Also I checked with phpinfo() and post_max_size is set to 8M and upload_max_filesize is set to 2M, the image file is roundabout 200K
|
|
|
|
09-26-2007, 10:38 AM
|
Re: Division by zero error
|
Posts: 478
|
Bizarre. Well, I'm out of ideas. Until you get that sorted out there's no real point in trying to understand what's wrong with the other script, as far as I can see...
|
|
|
|
09-26-2007, 11:13 AM
|
Re: Division by zero error
|
Posts: 1,851
Name: Thierry
Location: In the void
|
I think that as there is an error in the image, a variable like $height or $width might be null, and dividing something by null, in php means division by 0...
But maybe you should verify that your file is really uploaded, otherwise, an getimagesize() of a non-existant file will get you $height and $width = null
__________________
Listen to the ducky: "This is awesome!!!"
Last edited by tripy : 09-26-2007 at 11:15 AM.
|
|
|
|
09-26-2007, 12:32 PM
|
Re: Division by zero error
|
Posts: 478
|
Oh one other thing that I thought of!
Instead of trying to use the uploaded file in those image functions, read the contents into a string and print it out. If those contents are empty or something, it may very well be to do with your form. I spent literally at least 2 weeks trying to get one of my image uploader forms to work when I found out that you needed your form to have 'enctype="multipart/form-data"' added in the opening form tag.
So that might be the problem, too.
|
|
|
|
|
« Reply to Division by zero error
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|
|