(現在 過去ログ7 を表示中)

HOME HELP 新着記事 トピック表示 検索 過去ログ

No8674 の記事


■8674 / )  サイズ制限が機能しません。
□投稿者/ R -(2004/02/14(Sat) 20:41:05)
    最初の質問者ではありませんが、便乗で質問させて下さい。
    
    > 1139行目に2796〜2832行目
    > if($ico=~/.gif$/i){ #GIF
    >  :
    > }
    > までを挿入してそこにある $ico を $file に変更、
    > if($IW >= 横幅 || $IH >= 縦幅){&er_("サイズが大きすぎます!");}
    > でできると思います。
    
    上記の修正を行ってみたところ、設定した値以上のファイルをアップしても
    エラーチェックが働きません。
    
    
    	if($file=~/.gif$/i){ #GIF
    		open(GIF,"$i_dir/$file");
    		binmode(GIF);
    		seek(GIF,6,0);
    		read(GIF,$size,4);
    		close(GIF);
    		($IW,$IH)=unpack("vv",$size);
    	}elsif($file=~/.png$/i){ #PNG
    		open(PNG,"$i_dir/$file");
    		binmode(PNG);
    		seek(PNG,16,0);
    		read(PNG,$Pw,4);
    		read(PNG,$Ph,4);
    		close(PNG);
    		$PW=unpack("H*",$Pw);$IW=hex($PW);
    		$PH=unpack("H*",$Ph);$IH=hex($PH);
    	}elsif($file=~/.jpg$|.jpeg$/i){ #JPEG
    		open(JPG,"$i_dir/$file");
    		binmode(JPG);
    		read(JPG,$Top,2);
    		while (JPG) {
    			read(JPG,$Top,4);
    			($mark,$Cell,$Lar)=unpack("aan",$Top);
    			if($mark ne "\xFF"){$IW=0; $IH=0; last;}
    			elsif((ord($Cell) >= 0xC0) && (ord($Cell) <= 0xC3)){
    				read(JPG,$Top,5); ($IH, $IW)=unpack("xn2",$Top); last;
    			}else{read(JPG,$Top,($Lar-2));}
    		}
    		close(JPG);
    	}elsif($file=~/.bmp$/i){ #BMP
    		open(BMP,"$i_dir/$file");
    		binmode(BMP);
    		seek(BMP,18,0);
    		read(BMP,$size,8);
    		close(BMP);
    		($IW,$IH)=unpack("V2",$size);
    	}
    
    	if($IW >= 120 || $IH >= 160){&er_("サイズが大きすぎます!");}
    }
    
    とやってみたのですが、チェックが働いていないようなので、試しに
    &er_("サイズが大きすぎます!");
    だけを書いてみるとエラーが出ます(当然ですが・・)
    なので上記の方法では $IW $IH に値が入っていないのでは?と思います。
    残念ながら自分の技量ではここまでしかわかりません。
    どうかご教授お願い致します。

返信 [メール受信/OFF] 削除キー/


Pass/

HOME HELP 新着記事 トピック表示 検索 過去ログ

- Child Tree -