#!/usr/bin/perl #設置の方法によってパスの変更が必要です。 # jcode.plへのパス require './jcode.pl'; # cgi-lib.plへのパス require './cgi-lib.pl'; # MIMEコード変換ライブラリ require './mimew.pl'; # 各種設定ファイル require '../set/conf_test.pl'; # カテゴリー設定ファイル require '../set/shop_class.pl'; # 送料設定ファイル require '../set/souryoufile.pl'; # メール文書ファイル require '../set/mail_set.pl'; #ショッピングカート共通部分の設定ファイル require '../set/shop_set.pl'; #=====設定終了=================================================================== &ReadParse; while (($key,$val) = each %in) { # &jcode'convert(*val, "sjis"); $form{$key} = $val; $val =~ s/<>//g; if($form{'mode'} eq 'adm4' || $form{'mode'} eq 'order_form' || $form{'mode'} eq 'order_mail'){ $val =~ s/"/\"/g; if ($key eq "MESS" || $key eq "setumei") { $val =~ s/<//g; $val =~ s//\n/g; $val =~ s/\.\n/\. \n/g; }else{ $val =~ s/</g; $val =~ s/>/>/g; $val =~ s/\r\n//g; $val =~ s/\r//g; $val =~ s/\n//g; $val =~ s/\s//g; } }else{ $val =~ s/\"/"/g; $val =~ s/\0/ /g; if ($key eq "MESS" || $key eq "setumei" || $key eq "setumei2" || $key eq "setumei3") { $val =~ s/\r\n//g; $val =~ s/\r//g; $val =~ s/\n//g; if ($val =~ /$/) { while ($val =~ /$/) { $val =~ s/$//g; } } } else { $val =~ s/</g; $val =~ s/>/>/g; $val =~ s/\r\n//g; $val =~ s/\r//g; $val =~ s/\n//g; $val =~ s/\s//g; } } $in{$key} = $val; } #=================注文加算============================================ if($in{'order'} eq ""){ # Cookieの値を得る &getCookie(); $in{'order'} = $COOKIE{'ORDER'}; } $order=$in{'order'}; $order_new =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}; if($in{'amount'} ne "" and $in{'amount'} ne "0"){ if($order eq ""){ $order =$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'}; }else{ @order_1 = split(/!/,$order); foreach (@order_1) { ($i,$j) = split(/:/,$_); if($i eq $order_new){ $j = $j + $in{"amount"}; if($order_2 eq ""){ $order_2 =$order_new.":".$j; }else{ $order_2 .="!".$order_new.":".$j; } $k =1; }else{ if($order_2 eq ""){ $order_2 =$_; }else{ $order_2 .="!".$_; } } } if($k ne 1){ $order .="!".$in{'g_no'}.",".$in{'op1'}.",".$in{'op2'}.":".$in{'amount'}; }else{ $order =$order_2; } } $in{'order'}=$order; } #=================注文減算============================================ if($in{'del_no'} ne ""){ $order =""; @order_1 = split(/!/,$in{'order'}); foreach (@order_1) { ($s,$t) = split(/:/,$_); if($s eq $in{'del_no'}){next;} if($order eq ""){ $order = $s.":".$t; }else{ $order .="!".$s.":".$t; } } $in{'order'}=$order; } #クッキーの設定 print &setCookie_0("ORDER", $order); # 設定ファイル==================================================================== if ( $in{'mode'} eq 'order_mail' ) { $in{'order'} =''; require '../set/shop_set.pl'; $in{'order'}=$order; }else{ require '../set/shop_set.pl'; } #===== 戻り先======================================================== $save_data="$script?&keyword=$in{'keyword'}&FF=$in{'FF'}&class=$in{'class'}"; $modoru_adding = "$save_data&mode=adm2&pass=$adm_pass"; $modoru_dell = "$save_data&mode=adm3&pass=$adm_pass"; $modoru_renew = "$save_data&mode=adm4&pass=$adm_pass"; $modoru_goods ="$script?order=$in{'order'}&class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; $modoru_goods_2 ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; $modoru_goods_end ="$script?class=$in{'class'}&keyword=$in{'keyword'}&FF=$in{'FF'}&price_sort=$in{'price_sort'}"; #==================================================================== if (!open(IN,"$data_file")) { &error('データベース読取エラー','復旧をお待ちください.'); } @BASE = ; close(IN); if($in{'price_sort'} ne 1){ @BASE = reverse @BASE; }else{ @BASE = sort { (split(/\<\>/,$a))[8] <=> (split(/\<\>/,$b))[8] } @BASE; } $hit = 0; $next_num = ''; $over_no = 0; if($in{'mode'} eq 'adm3' or $in{'mode'} eq 'addell'){ $page =$page_dell; } #=========消費税のの扱い==================== if($tax_flag eq '' or $tax_flag == 0){ $tax_set ='(税別)'; $br_tax_set ='(税別)'; }elsif($tax_flag == 1){ $tax_set ='(税込)'; $br_tax_set ='(税込)'; $syouhi_tax =0; }else{ $syouhi_tax =0; } #==================================================================== if ( $in{'mode'} eq 'adding' ) { &adding; exit;} if ( $in{'mode'} eq 'renew' ) { &renew; exit;} if ( $in{'mode'} eq 'dell' ) { &dell; exit;} if ( $in{'mode'} eq 'look' ) { &look; exit;} if ( $in{'mode'} eq 'order_form' ) { &order_form; exit;} if ( $in{'mode'} eq 'sure' ) { &sure; exit;} if ( $in{'mode'} eq 'order_mail' ) { &order_mail; exit;} #=====TEST中========================================================= if ( $in{'mode'} eq 'adm5' ) { &csv_adm; exit;} if ( $in{'mode'} eq 'adm6' ) { &csv_adm_ok; exit;} if ( $in{'mode'} eq 'adm7' ) { &csv_new; exit;} #==================================================================== # Cookieの値を得る &getCookie(); $classmei = $COOKIE{'BUNRUIMEI'}; $ff_no = $COOKIE{'FF'}; if($ff_no eq ''){$ff_no =0;} $pas_word = $COOKIE{'WORD'}; if($in{'class'} ne ""){ $classmei = $in{'class'}; print &setCookie("BUNRUIMEI", $classmei); } if($in{'FF'} ne ""){ $ff_no = $in{'FF'}; print &setCookie('FF', $ff_no); } if($in{'keyword'} ne "" or $in{'superkey'} eq "1"){ $pas_word = $in{'keyword'}; print &setCookie('WORD', $pas_word); } $in{'keyword'} = $pas_word; $in{'class'}=$classmei; #=================================================================== $data_su= 0; $data_ff =0; foreach $num (0 .. $#BASE) { $data = $data2 = $BASE[$num]; &jcode'convert(*data,'sjis'); ($goods_no,$name,$artist,$kigou,$option,$option2,$class,$setumei,$fcolor,$price,$tani,$zaiko,$limit,$picture,$bikou,$nensiki,$syaken,$haikiryou,$door,$handle,$gaisou,$sonota,$recycling,$syuhuku,$hosyotuki,$seibituki,$icon) = split(/\<\>/,$data); if($pas_word ne "") { # 入力内容を整理 $word = $pas_word; $word =~ s/ / /g; $word =~ s/\t/ /g; @pairs = split(/ /,$word); ($a,$b) =split(/\//,$class); &class_name_get(); # 検索処理(検索対象の指定) $flag_k = 0; foreach $pair (@pairs){ # if (index($kigou,$pair) >= 0) { # next; #kaigyou }els if (index($name,$pair) >= 0) { next; }elsif (index($artist,$pair) >= 0) { next; # }elsif (index($goods_no,$pair) >= 0) { # next; }elsif (index($class_B,$pair) >= 0) { next; }elsif (index($class_S,$pair) >= 0) { next; }elsif (index($option,$pair) >= 0) { next; }elsif (index($setumei,$pair) >= 0) { next; }elsif (index($bikou,$pair) >= 0) { next; # }elsif (index($price,$pair) >= 0) { # next; # }elsif (index($class,$pair) >= 0) { # next; } $flag_k = 1; last; } if ($flag_k == 1) { next; } } if ($classmei ne "all" && $classmei ne "") { ($a1,$a2) =split(/\//,$class); ($b1,$b2) =split(/\//,$classmei); if ($a1 ne $b1) { next; } if ($b2 ne ''){ if($a2 ne $b2){ next;} } } if ($in{'id'} ne '' && ($in{'mode'} eq 'adm4' or $in{'mode'} eq 'p_wide')) { if ($goods_no eq $in{'id'}) { push(@NEW,$data2); last; } else { next; } } $data_su++; # 検索終了処理 if ($hit == $page) { $next_num = $data_ff; $over_no ++; $hit++; next; } elsif($hit < $page && $data_ff >= $ff_no){ push(@NEW,$data2); $hit++; }elsif($hit > $page && $data_ff >= $ff_no){ $over_no ++; } $data_ff ++; } if($over_no > $page){ $over_no = $page; } #========================================================================================= if ( $in{'mode'} eq 'adm1' ) { &adm1; exit;} elsif ( $in{'mode'} eq 'adm2' ) { &adm_add; exit;} elsif ( $in{'mode'} eq 'adm3' ) { &adm_dell; exit;} elsif ( $in{'mode'} eq 'adm4' ) { &adm_renew; exit;} elsif ( $in{'mode'} eq 'p_wide' ) { &p_wide; exit;} else { &shop_form; exit;} #=============================画像の拡大(詳細画面)=========================================== sub p_wide { &html_header(); if($zaiko eq ""){ $zaiko = 10000000; } if($limit eq ""){ $limit =100000; } $kosuu_setting = ""; foreach ( @kosuu_set ) { if($_ >$limit or $_ >$zaiko){ last; }else{ $kosuu_setting .= "$_"; } } if($kosuu_setting eq ""){ $kosuu_setting = "−$tani_set"; }else{ $kosuu_setting = "$kosuu_setting$tani_set"; } $folder="$dir_p/order.gif"; if($zaiko ne ''){ $get_setting = ""; }else{ $get_setting = $zaiko3; } ($pic1,$pic2,$pic3,$pic4,$pic5,$pici,$picj) =split(/\|/,$picture); if($pic1 eq ""){ $pic1 ="$dir_p/space2.gif"; } if($pic2 eq ""){ $pic2 ="$dir_p/space2.gif"; } if($pic3 eq ""){ $pic3 ="$dir_p/space2.gif"; } if($pic4 eq ""){ $pic4 ="$dir_p/space2.gif"; } if($pic5 eq ""){ $pic5 ="$dir_p/space2.gif"; } ($setumei,$setumei2) =split(/\|\|/,$setumei); @option = split(/\:/,$option); $i = 0; $option_set = ""; while($i < $option_no) { ($op_k[$i],$op_m[$i]) =split(/\,/,$option[$i]); if($op_k[$i] eq ""){ $i++; next;} $option_set = $option_set."$op_m[$i]($op_k[$i])\n"; $i++; } if($option_set ne ""){ $option_set = "".$option_set.""; }else{ $option_set ="\ "; } @option2 = split(/\:/,$option2); $i = 0; $option2_set = ""; while($i < $option2_no) { ($op2_k[$i],$op2_m[$i]) =split(/\,/,$option2[$i]); if($op2_k[$i] eq ""){ $i++; next;} $option2_set = $option2_set."$op2_m[$i]($op2_k[$i])\n"; $i++; } if($option2_set ne ""){ $option2_set = "".$option2_set.""; }else{ $option2_set ="\ "; } ($icon1,$icon2,$icon3,$icon4,$icon5,$icon6,$icon7,$icon8,$icon9,$icon11,$icon12,$icon13,$icon14,$icon15,$icon16,$icon17,$icon18,$icon19,$icon20,$icon21,$icon22,$icon23,$icon24,$icon25,$icon26,$icon27,$icon28,$icon29,$icon30,$icon31,$icon32,$icon33,$icon34,$icon35,$icon36,$icon37,$icon38,$icon39,$icon40,$icon41,$icon42,$icon43,$icon44,$icon45,$icon46,$icon47,$icon48,$icon49,$icon50,$icon51,$icon52,$icon53,$icon54,$icon55,$icon56,$icon57,$icon58,$icon59,$icon60,$icon61,$icon62,$icon63,$icon64,$icon65) =split(/\|/,$icon); if($icon1 eq ""){$icon_set = ""} print <<"EOF"; $class_all EOF $i =0; foreach (@class_tb) { ($class_B,$k) = split(/\//,$_); if("$i" ne $classmei){ print <<"EOF"; $class_B EOF }else{ print <<"EOF"; $class_B EOF } @class_S =split(/:/,$k); $j =0; foreach (@class_S) { if("$i/$j" ne $classmei){ print <<"EOF"; $class_B/$class_S[$j] EOF }else{ print <<"EOF"; $class_B/$class_S[$j] EOF } $j ++; } $i ++; } print <<"EOF"; EOF 1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/g; #桁カンマを入れる処理 print <<"EOF"; 商品名$name $maker$artist 商品ID$kigou 商品の説明 $setumei2 販売価格$price円$tax_set 在庫数$zaiko2 $option_set\ $option2_set\ 注文数 $kosuu_setting$tani \ $get_setting 上記のサムネール画像をクリックすると画像が切り替わります。 EOF print <<"EOF"; ■戻る EOF print "$foot\n" ; print "