同名ID、同名画像ファイル名があったらエラー表示
CGI勉強中です。既に同名の商品id_num及び画像ファイル名gazouが存在する場合、エラー表示する場合、コードの書き方がわかりません。
教えて下さい。
---------------------------------------------------------------
# 商品登録処理
sub goods_regist {
if ( $in{'id'} eq '' ) { &error ('エラー','IDが未選択です'); }
if ( $in{'id_num'} eq '' ) { &error ('エラー','商品個別番号が未入力です'); }
if ( $in{'goods'} eq '' ) { &error ('エラー','商品名が未入力です'); }
if ( $in{'tanka'} eq '' ) { &error ('エラー','商品単価が未入力です'); }
if ( $in{'id_num'} eq '' ) { &error ('エラー','商品個別番号が未入力です'); }
if ( $in{'ad_amount'} eq 'text' && $in{'ad_amount2'} eq '' ) { &error ('エラー','個数設定が不正です'); }
if ( $in{'ad_amount'} eq 'list' && $in{'ad_amount3'} eq '' ) { &error ('エラー','個数設定が不正です'); }
$goods_data = "$goods_dir/$in{'id'}.cgi";
open (DATA,"$goods_data") || &error('オープンエラー','商品データファイルが開けません。');
@LINES = <DATA>;
close (DATA);
$count = @LINES;
if ( $count == 0 ) {
$num = 1;
} else {
@lists = $LINES[-1];
$num = $lists[0];
$num = $num + 1;
}
&lock2;
open (OUT,">>$goods_data") || &error('オープンエラー','メール設定ファイルが開けません。');
print OUT "$num\t$date_now\t$in{'id'}\t$in{'id_num'}\t$in{'goods'}\t$in{'tanka'}\t";
print OUT "$in{'ad_amount'}\t$in{'ad_amount2'}\t$in{'ad_amount3'}\t$in{'rem'}\t\n";
close (OUT);
# 画像アップロード処理 ################
$filename = $in{'gazou'};
$gif = 1;
$jpeg = 1;
$macbin=0;
foreach (@in) {
if ($_ =~ /(.*)Content-type:(.*)\/(.*)/i) { $tail=$3; }
if ($_ =~ /(.*)gazou=(.*)/i) { $fname=$2; }
if ($_ =~ /application\/x-macbinary/i) { $macbin=1; }
}
$tail =~ s/\r//g;
$tail =~ s/\n//g;
$filename =~ s/\"//g;
$flag=0;
if ($image_up eq '0') { $flag=1; }
if ($tail =~ /gif/i && $gif) { $tail=".gif"; $flag=1; }
if ($tail =~ /jpeg/i && $jpeg) { $tail=".jpg"; $flag=1; }
if (!$flag) {
if ($fname =~ /.gif/i && $gif) { $tail=".gif"; $flag=1; }
if (($fname =~ /.jpg/i && $jpeg) || ($fname =~ /.jpeg/i && $jpeg))
{ $tail=".jpg"; $flag=1; }
}
if (!$flag) { &error("アップロードできないファイル形式です","lock"); }
$upfile = $in{'gazou'};