#!/usr/bin/perl # ↑サーバーの「perl」のパスを指定。 # 駄目なら「#!/usr/local/bin/perl5」 # それでも駄目ならサーバー管理者に問い合わせて下さい。 ####################################################### ##--------------------- Cargo CGI --------------------- ## (C)Copyright 2001 by Chama.ne.jp ## E-mail:master@chama.ne.jp ## HP:http://www.chama.ne.jp ####################################################### # 免責事項、バージョン情報などはkanri.cgiを参照 #---------- ↓初期設定項目 ----------------------------# #商品一覧CGI名 $goodslist_cgi = 'goodslist.cgi'; #管理CGI名 $kanri_cgi = 'kanri.cgi'; #CargoCGI $cargo_cgi = 'cargo.cgi'; #更新履歴CGI名 $memo_cgi = 'memo.cgi'; #商品情報詳細表示CGI名 $goodsprev_cgi = 'goodsprev.cgi'; #会員LOGINCGI $login_cgi = 'login.cgi'; #パスワード通知CGI名 $pass_cgi = 'pass.cgi'; #基本情報ファイル名 $k_file = 'data/kihon.dat'; #CGI名著作権表示ファイル名 $cgi_file = 'data/cgi.dat'; #商品一覧ページ設定情報ファイル名 $gp_file = 'data/gp.dat'; #会社案内データ閲覧CGI $shopprev_cgi = 'shopprev.cgi'; #訪問販売法上の表記事項閲覧CGI名 $houprev_cgi = 'houprev.cgi'; #割引情報表示CGI名 $waribikiprev_cgi = 'waribikiprev.cgi'; #商品検索CGI $gsearch_cgi = 'gsearch.cgi'; #マイリストに入れるCGI $like_cgi = 'like.cgi'; #発送及び送料表示CGI名 $postprev_cgi = 'postprev.cgi'; #支払方法表示CGI名 $payprev_cgi = 'payprev.cgi'; #会員登録CGI名 $user_cgi = 'user.cgi'; #LOGOUT-CGI名 $logout_cgi = 'logout.cgi'; #商品データファイル名 $g_file = 'data/goods.csv'; #カテゴリファイルの指定 $kate_file = 'data/kate.dat'; #HTML情報ファイルの指定 $htmlheader_file = 'data/htmlheader.dat'; $htmlfooter_file = 'data/htmlfooter.dat'; #在庫情報フォルダの指定 $z_file = 'goods'; #会員データファイル名 $member_file = 'data/member.csv'; #税金計算方法データファイル名 $zei_file = 'data/zei.dat'; #「かごに入れる」画像ファイル名 $tocargo_img = 'tocargo.gif'; #「かごの中身」画像ファイル名 $img_cargo = 'cargo2.gif'; #「連絡先」画像の指定 $img_shop = 'renraku.gif'; #「TOPへ」画像の指定 $img_top = 'top.gif'; #「訪問販売法」画像の指定 $img_hou = 'hou.gif'; #「割引情報」画像の指定 $img_waribiki = 'waribiki.gif'; #「商品一覧」画像の指定 $img_list = 'list.gif'; #「戻る」画像の指定 $back_img = 'back.gif'; #「E-mail」画像の指定 $img_mail = 'email.gif'; #「発送・送料」画像の指定 $img_post = 'post.gif'; #「支払方法」画像の指定 $img_pay = 'pay.gif'; #「売り切れ」画像の指定 $img_soldout = 'soldout.gif'; #「予約申込」画像の指定 $img_yoyaku = 'yoyaku.gif'; #「商品の詳細」画像の指定 $img_detail = 'detail.gif'; #「キーワード商品検索」画像の指定 $img_keyword = 'keyword.gif'; #「商品番号から表示」画像の指定 $img_noprev = 'noprev.gif'; #「カテゴリ一覧」画像の指定 $img_category = 'category.gif'; #「カテゴリ別詳細表示」画像の指定 $img_categorydetail = 'category_detail.gif'; #「マイリスト」画像の指定 $img_like = 'like.gif'; #「会員メニュー」画像の指定 $img_loginmenu = 'loginmenu.gif'; #「ログアウト」画像の指定 $img_logout = 'logout.gif'; #「会員/初めての方」画像の指定 $img_memberlogo = 'memberlogo.gif'; #「会員LOGIN」画像の指定 $img_member = 'member.gif'; #「新規会員登録」画像の指定 $img_memberin = 'memberin.gif'; #「BACK」画像の指定 $img_glback = 'glback.gif'; #「NEXT」画像の指定 $img_glnext = 'glnext.gif'; #「ID・パスワード?」画像の指定 $img_password = 'password.gif'; #「リストボタン」画像の指定 $img_blist = 'blist.gif'; #「写真表示へ」画像の指定 $img_photomode = 'photomode.gif'; #NEW、お勧め、PicUP画像の指定 $img_new = 'new.gif'; $img_osusume = 'osusume.gif'; $img_picup = 'picup.gif'; $img_menunew = 'menunew.gif'; $img_menuosusume = 'menuosusume.gif'; $img_menupicup = 'menupicup.gif'; #「メールマガジン」画像の指定 $img_maga = 'maga.gif'; #クッキーの名前 $cookiename = 'chamacargo'; #---------- ↓プログラム-------------------------------# #----------↑設定終了↓以下は修正しない。--------------- require './jcode.pl'; &decode; #クッキーの読み込み &cookie_read($cookiename); #ファイルロック &o_lock; #基本ファイルを開く &k_open; #スタイルシートを読み込む &stylein; #CGIファイルを開く &cgi_open; #表示情報ファイルを開く &gp_open; #税金計算方法データファイルを開く &zei_open; if($in{'yid'}){ #会員情報ファイルの読み込み &member_open; } #商品データを取得 &g_open; if($in_max){ if($gp_max > $in_max){ $gp_max = $in_max; } }else{ $gp_max = $gp_iprev; } #カテゴリファイルを開く &kate_open; #挿入するHTML情報を取得 &html_open; &list_prev; #サブルーチン--------------------------------------------# #デコード処理-------------------------------------------- sub decode{ if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buff, $ENV{'CONTENT_LENGTH'}); } else { $buff = $ENV{'QUERY_STRING'}; } @pairs = split(/&/,$buff); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s/ / /g; &jcode'convert(*value,'sjis'); $value =~ s/[\r\t\f]//g; #コードを削除 $value =~ s/&//g; $value =~ s/"//g; $value =~ s///g; $value =~ s/\(//g; $value =~ s/\)//g; $value =~ s/\///g; $in{$name} = $value; } $in_start = $in{'in_start'}; $in_flag = $in{'in_flag'}; $in_max = $in{'max'}; if($in_max && $in_max < 1){ $in_max = 20; } $in_yid = $in{'yid'}; $in_ypass = $in{'ypass'}; $in_kate = $in{'in_kate'}; $in_kate2 = $in{'in_kate2'}; $in_kate =~ s/[a-zA-Z]//g; $in_kate2 =~ s/[a-zA-Z]//g; } #クッキーの読み込み---------------------------------------------- sub cookie_read { $c_cnt = 0; $c_flag = 0; local($cookiename) = $_[0];; local($key,$value); local(@pairs) = split(/;/,$ENV{'HTTP_COOKIE'}); foreach (@pairs) { ($key, $value) = split(/=/, $_); $DUMMY{$key} = $value; } @pairs = split(/,/,$DUMMY{$cookiename}); foreach $pair (@pairs) { ($key, $value) = split(/\!/, $pair); if($key eq 'id'){ ($in{'yid'},$in{'ypass'}) = split(/<>/,$value); }else{ $c_gno[$c_cnt] = $key; $c_gcnt[$c_cnt] = $value; } $c_cnt++; } } #基本ファイルのOPEN------------------------------------------------------ sub k_open{ open KF,"$k_file" or die "$k_file オープン失敗"; while (){ $_ =~s/[\r\n\t\f]//g; $_ =~s/[\r\n\t\f]//g; ($mail,$url,$logo,$title,$title_size,$title_color, $word_size,$word_color,$table_color,$td_color,$data, $bg_file,$kanri_pass,$img,$pass,$upimg,$previmg, $imgmax,$sendmail,$track_color,$face_color,$shadow_color, $darkshadow_color,$hightlight_color,$dlight_color,$arrow_color, $subject_form,$subject_in,$subject_out,$mail_on,$order_on, $friend_on,$member_on,$cargochange_on,$pmagaurl,$pmagain, $pmagaflag1,$pmagaflag2,$pmagaflag3,$sslcookie,$cookietime, $vc_id,$k_lower,$k_upper,$sendmailoption,$yoyaku,$pmagaflag4, $pmagaflag5,$pmagaflag6,$pmagaflag7,$pmagaflag8,$pmagaflag9, $htmldir,$htmldirimage,$htmlauto,$htmlprevdir,$v_researchpath, $popwin,$a8id,$kmps_on,$kmps_max,$kmps_comment,$kselectmax, $kpostset2,$kpostset3,$kpostset4,$kpostset5,$ktitleprev,$kfirsttime, $ksubmail,$kwarion,$kpointup,$krclickon,$kmemberpp,$kcsvpay1,$kcsvpay2, $kcsvpay3,$kcsvcard,$kcsvupdir,$kcsvdowndir,$kcsvmode, $kmemberidmin,$kmemberidmax,$kmemberpassmin,$kmemberpassmax,$kmylist) = split(/<>/,$_); } close KF; } #スタイルシートの読み込み---------------------------------------------------- sub stylein{ local $style_file = 'cargo.css'; open STYLEIN,"$style_file"; while(){ $_ =~ s/[\r\n\f]//g; $stylehtml .= $_; $stylehtml .= "\n"; } close STYLEIN; } #CGI情報ファイルのOPEN------------------------------------------------------- sub cgi_open{ open CGIIN,"$cgi_file" or die "$cgi_file オープン失敗"; while (){ chomp $_; ($cgi_name,$copyright) = split(/<>/,$_); } close CGIIN; } #表示情報ファイルのOPEN------------------------------------------------------ sub gp_open{ open GPIN,"$gp_file" or die "$gp_file オープン失敗"; while (){ $_ =~s/[\r\n\t\f]//g; ($gp_wsize,$gp_select,$gp_smax,$gp_max, $gp_bikou,$gp_com,$gp_kousin,$gp_kmax,$gp_iprev, $gp_kprev,$gp_nameb,$gp_namesize,$gp_namecolor, $gp_yenb,$gp_yensize,$gp_yencolor,$gp_searchprev, $gp_noprev,$gp_kateprev,$gp_katepprev,$gp_zaikoprev, $gp_detailprev,$gp_userprev,$gp_photoprev,$gp_phototitle, $gp_photocost,$gp_photolink,$gp_photocols,$gp_photorows, $gp_logoprev,$gp_titleprev,$gp_menuprev,$gp_slineprev, $gp_stitleprev,$gp_quest,$gp_ltablesize,$gp_magaprev, $gp_goodslistsize,$gp_linktarget,$gp_scomprev,$gp_smini, $gp_newon,$gp_osusumeon,$gp_picupon,$gp_menunewprev, $gp_menuosusumeprev,$gp_menupicupprev,$gp_menuhtml,$gp_comhtml) = split(/<>/,$_); } close GPIN; if($gp_kateprev == 3 && $gp_searchprev == 2 && $gp_noprev > 1 && $gp_katepprev == 2 && $gp_userprev == 2){ $gp_tableprev = 2; }else{ $gp_tableprev = 1; } #v3.90バージョンUPへの対応 unless($gp_ltablesize){ $gp_ltablesize = 160; } #NEW、お勧め、PicUP商品の整理 @gp_news = split(/\,/,$gp_newon); foreach $gp_new_(@gp_news){ $gp_new{$gp_new_} = 1; $aa .= $gp_new_; } @gp_osusumes = split(/\,/,$gp_osusumeon); foreach $gp_osusume_(@gp_osusumes){ $gp_osusume{$gp_osusume_} = 1; } @gp_picups = split(/\,/,$gp_picupon); foreach $gp_picup_(@gp_picups){ $gp_picup{$gp_picup_} = 1; } } #データファイルのOPEN------------------------------------------------------ sub g_open{ $g_cnt = 0; if($in{'yname'}){ $prevok_check = 2; }else{ $prevok_check = 1; } local $pin_kate = $in_kate % 100; local $pin_katemax = $in_kate + 99; open FF,"$g_file" or die "$g_file オープン失敗"; while (){ $_ =~ s/[\r\t\f\n]//g; ($d_gno[$g_cnt],$d_gname[$g_cnt],$d_gprice[$g_cnt], $d_gtani[$g_cnt],$d_gbikou1[$g_cnt], $d_gbikou2[$g_cnt],$d_gbikou3[$g_cnt],$d_gurl[$g_cnt], $d_gimg[$g_cnt],$d_gcom[$g_cnt],$d_gkate1[$g_cnt], $d_gkate2[$g_cnt],$d_gkate3[$g_cnt],$d_gcom2[$g_cnt],$d_gweight[$g_cnt],$d_gyoyaku[$g_cnt], $d_gprevok[$g_cnt],$d_gordermaxcnt[$g_cnt],$d_gmemberprice[$g_cnt]) = split(/","/,$_); $d_gno[$g_cnt] =~ s/"//g; $d_gweight[$g_cnt] =~ s/"//g; $d_gyoyaku[$g_cnt] =~ s/"//g; $d_gmemberprice[$g_cnt] =~ s/"//g; if($d_gprevok[$g_cnt] >= $prevok_check){ next; } if($in_kate){ if($in_kate == $d_gkate1[$g_cnt] or $in_kate == $d_gkate2[$g_cnt] or $in_kate == $d_gkate3[$g_cnt]){ $g_cnt++; }elsif($pin_kate == 0){ if($d_gkate1[$g_cnt] > $in_kate && $d_gkate1[$g_cnt] <= $pin_katemax){ $g_cnt++; }elsif($d_gkate2[$g_cnt] > $in_kate && $d_gkate2[$g_cnt] <= $pin_katemax){ $g_cnt++; }elsif($d_gkate3[$g_cnt] > $in_kate && $d_gkate3[$g_cnt] <= $pin_katemax){ $g_cnt++; } }elsif($in{'in_kate2'}){ if($in{'in_kate2'} == $d_gkate1[$g_cnt] or $in{'in_kate2'} == $d_gkate2[$g_cnt] or $in{'in_kate2'} == $d_gkate3[$g_cnt]){ $g_cnt++; } } }else{ $g_cnt++; } } close FF; } #カテゴリファイルのOPEN------------------------------------------------------- sub kate_open{ $k_cnt = 0; open KAF,"$kate_file" or die "$kate_file オープン失敗"; while (){ chomp $_; ($k_ino[$k_cnt],$k_iname[$k_cnt],$k_icom[$k_cnt]) = split(/<>/,$_); $k_name{$k_ino[$k_cnt]} = $k_iname[$k_cnt]; $k_com{$k_ino[$k_cnt]} = $k_icom[$k_cnt]; $k_cnt++; } close KAF; } #データファイルのOPEN------------------------------------------------------ sub zei_open{ open ZEIF,"$zei_file" or die "$zei_file オープン失敗"; while (){ $_ =~ s/[\r\t\f\n]//g; ($v_zei,$v_zritu) = split(/<>/,$_); } close ZEIF; } #会員情報ファイルの読み込み--------------------------------------------- sub member_open{ open MEM,"$member_file" or die "$member_file オープン失敗"; while (){ $_ =~ s/[\r\t\f\n]//g; ($m_id,$m_pass,$m_name,$m_kana,$m_mail, $m_tel,$m_post1,$m_post2,$m_add1,$m_add2) = split(/","/,$_); $m_id =~ s/"//g; if($in{'yid'} eq $m_id){ if($in{'ypass'} eq $m_pass){ $v_name = $m_name; $v_kana = $m_kana; $v_mail = $m_mail; $v_tel = $m_tel; $v_post1 = $m_post1; $v_post2 = $m_post2; $v_add1 = $m_add1; $v_add2 = $m_add2; } } } close MEM; $in{'yname'} = $v_name; } #HTML情報の取得---------------------------------------------------- sub html_open{ open HTMLH,"$htmlheader_file" or die "$htmlheader_file オープン失敗"; while (){ $_ =~ s/[\r\t\f\n]//g; @htmlheader_data = (@htmlheader_data,$_); } close HTMLH; open HTMLF,"$htmlfooter_file" or die "$htmlfooter_file オープン失敗"; while (){ $_ =~ s/[\r\t\f\n]//g; @htmlfooter_data = (@htmlfooter_data,$_); } close HTMLF; } #一覧表の表示---------------------------------------------------------- sub list_prev{ ⊤ $new_img = $img.'/'.$img_new; $osusume_img = $img.'/'.$img_osusume; $picup_img = $img.'/'.$img_picup; $menunew_img = $img.'/'.$img_menunew; $menuosusume_img = $img.'/'.$img_menuosusume; $menupicup_img = $img.'/'.$img_menupicup; print "\n"; print "\n"; print "\n"; unless($gp_tableprev == 2){ #print "\n"; } print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; } $f_len = length $g_cnt; my $tanni = $gp_max; unless($tanni > 0){ $tanni = 1; } unless($gp_searchprev == 2){ $keyword_img = $img; $keyword_img .='/'; $keyword_img .= $img_keyword; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\"キーワード検索\"
"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "and\n"; print "or\n"; print "\n"; print "
\n"; print "※複数入力はスペースで区切って下さい。\n"; print "
\n"; print "
\n"; print "
\n"; } if($gp_noprev < 2){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; $noprev_img = $img; $noprev_img .='/'; $noprev_img .= $img_noprev; print "\"商品番号から表\示\"
"; print ""; print ""; print ""; print ""; print "を"; print "\n"; print "
\n"; print "
\n"; print "
\n"; } #NEW、お勧め、PicUP if($gp_menunewprev == 1 or $gp_menuosusumeprev == 1 or $gp_menupicupprev == 1){ print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; if($gp_menunewprev == 1){ print ""; print "\"新商品\""; print "\n"; print "
\n"; } if($gp_menuosusumeprev == 1){ print ""; print "\"お勧め\""; print "\n"; print "
\n"; } if($gp_menupicupprev == 1){ print ""; print "\"注目、人気\""; print "\n"; } print "
\n"; print "
\n"; } unless($gp_kateprev == 3){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; $category_img = $img; $category_img .='/'; $category_img .= $img_category; print "\"カテゴリ一覧\"\n"; print "\n"; print "
\n"; $blist_img = $img; $blist_img .='/'; $blist_img .= $img_blist; $k_pcnt = 0; print "\">\"\n"; print ""; print "\n"; print "全カテゴリ"; print "\n"; print "\n"; print "
\n"; $in_dkate = int($in_kate / 100); if($k_cnt > 0){ while($k_cnt > $k_pcnt){ $k_amari = $k_ino[$k_pcnt] % 100; $k_dkate = int($k_ino[$k_pcnt] / 100); if($k_amari > 0){ if($gp_kateprev == 2 or $in_dkate == $k_dkate){ print " \n"; print "\"小\"\n"; print ""; print "\n"; print $k_iname[$k_pcnt]; print "\n"; print "\n"; print "
\n"; } }else{ print "\"大\"\n"; print ""; print "\n"; print $k_iname[$k_pcnt]; print "\n"; print "\n"; print "
\n"; } $k_pcnt++; } } print "
\n"; print "
\n"; } unless($gp_katepprev == 2){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; $categorydetail_img = $img; $categorydetail_img .='/'; $categorydetail_img .= $img_categorydetail; print "\"カテゴリ別一覧\"\n"; print "
\n"; if($k_cnt > 0){ print "\n"; print "中\n"; } print "\n"; print "から
\n"; print "\n"; print "件を"; print ""; print ""; print ""; print ""; print "\n"; print "
\n"; print "
\n"; print "
\n"; } if($member_on == 2){ $gp_userprev = 2; } unless($gp_userprev == 2){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; $memberlogo_img = $img; $memberlogo_img .='/'; $memberlogo_img .= $img_memberlogo; print "\"会員/初めての方\"\n"; print "
\n"; print "\n"; if($in{'yname'}){ print "LOGIN:$in{'yname'}様\n"; print "\n"; print "\n"; $loginmenu_img = $img; $loginmenu_img .='/'; $loginmenu_img .= $img_loginmenu; print "\n"; print "
\n"; print ""; $logout_img = $img; $logout_img .='/'; $logout_img .= $img_logout; print "\"LOGOUT\""; print "\n"; print "
\n"; }else{ print "ID:\n"; print "PASS:\n"; $member_img = $img; $member_img .='/'; $member_img .= $img_member; print "\n"; print "
\n"; print ""; $memberin_img = $img; $memberin_img .='/'; $memberin_img .= $img_memberin; print "\"新規会員登録\""; print "\n"; print "
\n"; $password_img = $img; $password_img .='/'; $password_img .= $img_password; print ""; print "\"ID・パスワード?\""; print "\n"; } print "
\n"; print "
\n"; print "
\n"; } if($gp_magaprev > 1 && $pmagaurl){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; $magaprev_img = $img; $magaprev_img .='/'; $magaprev_img .= $img_maga; print "\"メールマガジン\"
"; print "E-mail:"; print "
\n"; if($gp_magaprev == 2){ print "購読開始"; print "購読解除"; }else{ print ""; } print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print "\n"; print "
\n"; print "
\n"; print "
\n"; } #左メニューHTMLの出力 $gp_menuhtml =~ s/¥\;/\n/g; print $gp_menuhtml; unless($gp_tableprev == 2){ print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; #print "
\n"; print "\n"; print "商品一覧\n"; print "\n"; print "\n"; if($in_kate){ print "「"; $in_kateamari = $in_kate % 100; if($in_kateamari > 0){ $in_kate12 = $in_kate - $in_kateamari; print $k_name{$in_kate12}; print "\>"; } print $k_name{$in_kate}; print "」該当"; $in_kate13 = 1; } if($in_kate2){ print "又は「"; $in_kateamari = $in_kate2 % 100; if($in_kateamari > 0){ $in_kate22 = $in_kate2 - $in_kateamari; print $k_name{$in_kate22}; print "\>"; } print $k_name{$in_kate}; print "」該当"; $in_kate23 = 1; } if($in_kate13 < 1 && $in_kate23 < 1){ print "全"; } print "商品数=$g_cnt件\n"; unless($gp_photoprev == 2){ print "  "; print ""; $photomode_img = $img; $photomode_img .='/'; $photomode_img .= $img_photomode; print "\"写真表\示へ\""; print "\n"; } if($k_com{$in_kate}){ print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; $k_com{$in_kate} =~ s//\n/g; print $k_com{$in_kate}; print "\n"; print "
\n"; } print "
\n"; #print "
\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; my $p_cnt = $in_start; my $p_no = $in_start + 1; my $p_max = $in_start + $gp_max; if($g_cnt < $p_max){ $p_max = $g_cnt; } $img_cargoto = $img; $img_cargoto .= '/'; $img_cargoto .= $tocargo_img; while($p_max > $p_cnt){ print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; $p_cnt++; } #ロック解除 &c_lock; print "\n"; print "
\n"; print "\n"; print "イメージ\n"; print "\n"; print "\n"; print "\n"; unless($gp_noprev == 2){ print "["; print "品番"; print "]"; } print "\n"; print "商品名\n"; print "\n"; if($gp_bikou > 0){ print "規格\n"; } print "\n"; print "\n"; print "\n"; print "価格\/"; print "単位\n"; print "\n"; print "\n"; print "\n"; print "ご注文\n"; print "\n"; print "
\n"; print "\n"; print "商品の説明\n"; print "\n"; print "
\n"; print "\n"; if($d_gurl[$p_cnt]){ print ""; if($d_gimg[$p_cnt]){ print "\"image$p_no\"\n"; }else{ print "商品の説明はこちら\n"; } print "\n"; }else{ if($d_gimg[$p_cnt]){ print ""; print "\"image$d_gno[$p_cnt]\"\n"; print "\n"; } } $p_no++; print "\n"; print "
\n"; print "\n"; unless($gp_detailprev == 2){ $dp_gno = $d_gno[$p_cnt]; $detail_img = $img; $detail_img .='/'; $detail_img .= $img_detail; print ""; print ""; print ""; print "\n"; print "\n"; } #マイリストボタン unless($kmylist == 2){ unless($member_on == 2){ #別ウインドウを表示するためのJavaScriptをprint print '\n"; $like_img = $img; $like_img .='/'; $like_img .= $img_like; print ""; print "\"マイリスト\""; print "\n"; } } if($member_on == 1 or $gp_detailprev == 2){ print "
\n"; } unless($gp_noprev == 2){ print "\[$d_gno[$p_cnt]\]\n"; } unless($gp_nameb == 2){ print "\n"; } print "\n"; print $d_gname[$p_cnt],"\n"; print "\n"; unless($gp_nameb == 2){ print "\n"; } #画像表示 if($gp_new{$d_gno[$p_cnt]} == 1){ print "\"new\"\n"; } if($gp_osusume{$d_gno[$p_cnt]} == 1){ print "\"お勧め\"\n"; } if($gp_picup{$d_gno[$p_cnt]} == 1){ print "\"PicUP\"\n"; } unless($gp_bikou == 0){ print "
\n"; print $d_gbikou1[$p_cnt],"\n"; if($gp_bikou > 1){ print "
\n"; print $d_gbikou2[$p_cnt],"\n"; if($gp_bikou >2){ print "
\n"; print $d_gbikou3[$p_cnt],"\n"; } } } print "
\n"; print "
\n"; print "\n"; $kanma_dgprice = &kanma($d_gprice[$p_cnt]); print "\n"; unless($gp_yenb == 2){ print ""; } print $kanma_dgprice; unless($gp_yenb == 2){ print ""; } print ""; print "円\/"; print $d_gtani[$p_cnt],"\n"; if($v_zei == 5 or $v_zei == 6){ print "\n"; print "
(うち消費税額\n"; print &zeigaku($d_gprice[$p_cnt],$v_zritu); print "円)\n"; print "
"; }elsif($v_zei == 7){ print "\n"; print "
(税込)\n"; print "
"; } #会員価格を表示 $memberppflag = 0; if($kmemberpp == 0 && $d_gmemberprice[$p_cnt] > 0){ $memberppflag = 1; }elsif($in{'yname'} && $d_gmemberprice[$p_cnt] > 0){ $memberppflag = 1; } if($memberppflag == 1){ print "
"; $kanma_dgprice = &kanma($d_gmemberprice[$p_cnt]); print "会員価格:"; print "\n"; print $kanma_dgprice; print ""; print "円\/"; print $d_gtani[$p_cnt],"\n"; if($v_zei == 5 or $v_zei == 6){ print "\n"; print "
(うち税\n"; print &zeigaku($d_gmemberprice[$p_cnt],$v_zritu); print "円)\n"; print "
"; }elsif($v_zei == 7){ print "\n"; print "
(税込)\n"; print "
"; } } print "
\n"; print "
\n"; #セレクトの表示 $select_file = 'goods/select/'; $select_file .= $d_gno[$p_cnt]; $select_file .= '.csv'; $selhandle = 'SEL'; $selhandle .= $p_cnt; $sel_cnt = 0; open $selhandle,"$select_file"; while(<$selhandle>){ $_ =~ s/[\r\n\t\f]//g; $sel_data = $_; if($sel_data){ @selects = split(/,/,$sel_data); print "\n"; } $sel_cnt++; } close $selhandle; #オプションの表示 $optionfile = 'goods/option/'; $optionfile .= $d_gno[$p_cnt]; $optionfile .= '.csv'; $opthandle = 'OPT'; $opthandle .= $p_cnt; $opt_cnt = 0; $opt_pcnt = 0; $opt_name[0] = ''; open $opthandle,"$optionfile"; while(<$opthandle>){ $_ =~ s/[\r\n\t\f]//g; $_ =~ s/"//g; ($opt_no[$opt_cnt],$opt_name[$opt_cnt],$opt_price[$opt_cnt]) = split(/,/,$_); $opt_cnt++; } close $opthandle; $d_zaiko[$p_cnt] = &z_open($d_gno[$p_cnt]); if($d_zaiko[$p_cnt] eq 'free' or $d_zaiko[$p_cnt] > 0){ print "\n"; if($opt_name[0]){ print "\n"; } if($gp_select eq 'yes'){ if($d_zaiko[$p_cnt] eq 'free'){ print "$d_gtani[$p_cnt]"; }elsif($d_zaiko[$p_cnt] > 1){ print "$d_gtani[$p_cnt]"; }else{ print ""; } }elsif($gp_select eq 'undo' or $d_zaiko[$p_cnt] == 1){ print ""; }else{ print "$d_gtani[$p_cnt]"; } print ""; print ""; print ""; print ""; print "\n"; print "\n"; }else{ if($d_gyoyaku[$p_cnt] == 1){ if($opt_name[0]){ print "\n"; } $yoyaku_img = $img; $yoyaku_img .= '/'; $yoyaku_img .= $img_yoyaku; print "\n"; if($gp_select eq 'yes'){ print "$d_gtani[$p_cnt]"; }elsif($gp_select eq 'undo' or $d_zaiko[$p_cnt] == 1){ print ""; }else{ print "$d_gtani[$p_cnt]"; } print ""; print ""; print ""; print ""; print ""; print "\n"; print "\n"; }else{ $soldout_img = $img; $soldout_img .='/'; $soldout_img .= $img_soldout; print "\"SoldOut\""; } } print "
\n"; print "\n"; unless($gp_comhtml == 1){ $d_gcom[$p_cnt] =~ s/
/\n/ig; $d_gcom[$p_cnt] =~ s/<\/?$_[^>]*>//ig; $d_gcom[$p_cnt] =~ s/\n/
/ig; }else{ $d_gcom[$p_cnt] =~ s/&/&/g; $d_gcom[$p_cnt] =~ s/"/"/g; $d_gcom[$p_cnt] =~ s/<//g; } if($gp_com > 0){ $prev_dgcom = substr($d_gcom[$p_cnt],0,$gp_com); $sub_prevlength = length $prev_dgcom; $prev_length = length $d_gcom[$p_cnt]; if($prev_length > $sub_prevlength){ $prev_dgcom .= '...'; } print $prev_dgcom; }else{ print $d_gcom[$p_cnt]; } print "
\n"; print "
\n"; print "
\n"; print "

\n"; if($in_start > 1){ $glback_img = $img; $glback_img .='/'; $glback_img .= $img_glback; $gl_backno = $in_start - $tanni; print ""; print "\"BACK\""; print "\n"; $br_flag = 1; } $gl_nextno = $in_start + $tanni; if($g_cnt > $gl_nextno){ $glnext_img = $img; $glnext_img .='/'; $glnext_img .= $img_glnext; print ""; print "\"NEXT\""; print "\n"; $br_flag = 1; } if($br_flag == 1){ print "

\n"; } $t_cnt = $tanni; $t_pcnt = 1; $next = 0; if($in_start < 2){ print "\n"; } print "$t_pcnt\n"; if($in_start < 2){ print "\n"; } $t_pcnt++; $word_size2 = $word_size + 1; $word_size3 = $word_size2 + 1; while($g_cnt > $t_cnt){ $next = $t_cnt; if($in_start == $next){ print "\n"; print "\n"; }else{ print "\n"; } print "$t_pcnt\n"; if($in_start == $next){ print "\n"; } print "\n"; $t_cnt += $tanni; $t_pcnt++; } print "

\n"; print "\n"; print "\"TOP\""; print "\n"; print "
\n"; &last; } #数字にカンマを付ける------------------------------------------------------ sub kanma{ local($suu) = @_; $kekka=$suu; $len = length($suu); $keta_top = $len % 3; $len_ = $len - $keta_top; $kanma = $len_ / 3; $kekka = substr $suu,0,$keta_top; my $kanma_cnt = 0; if($len>3 && $keta_top>0){ $kekka .= "\,"; } while($kanma>$kanma_cnt){ my $start_cnt = $kanma_cnt * 3 + $keta_top; $kekka .= substr $suu,$start_cnt,3; $kanma_cnt++; if($kanma !=$kanma_cnt){ $kekka .= "\,"; } } return($kekka); } #消費税額を計算する------------------------------------------------------ sub zeigaku{ local $tanka = $_[0]; local $ritu = $_[1]; local $pritu = $ritu + 100; local $tankaritu = $tanka * $ritu; local $hasuu = $tankaritu % $pritu; $tankaritu -= $hasuu; local $zeigaku = $tankaritu / $pritu; return($zeigaku); } #在庫情報ファイルを開く---------------------------------------- sub z_open{ local $file_name = $_[0]; $free_flag = 0; $z_cnt = 0; $v_icnt = 0; $v_ocnt = 0; $goods_file = $z_file; $goods_file .= '/'; $goods_file .= $file_name; $goods_file .= '.csv'; $handle += 1; open $handle, "$goods_file"; while (<$handle>){ chomp $_; ($z_time,$z_do,$z_ocnt,$z_ono,$z_id) = split(/","/,$_); $z_time =~ s/"//g; $z_id =~ s/"//g; if($z_do == 1){ $v_icnt += $z_ocnt; }else{ $v_ocnt += $z_ocnt; } if($z_ocnt eq 'free'){ $free_flag = 1; } } close $handle; if($free_flag == 1){ $zaiko = 'free'; }else{ $zaiko = $v_icnt - $v_ocnt; if($zaiko < 0){ $zaiko = 0; } } return($zaiko); } #HTMLprintサブルーチン--------------------------------------------------- sub top{ print "Content-type:text/html\n\n"; print "\n"; print "\n"; print ""; if($in_kate){ print $k_name{$in_kate}; print "、"; } if($in_kate2){ print $k_name{$in_kate}; print "、"; } print "$title\n"; print "\n"; print "\n"; if($bg_file){ print "\n"; }else{ print "\n"; } #HTMLヘッダーを出力 foreach $prev_text(@htmlheader_data){ print $prev_text; print "\n"; } print "\n"; if($logo){ unless($gp_logoprev == 2){ print "\n"; print "
"; } } print "\n"; print "\n"; print "\n"; print "\n"; unless($gp_kousin == 2){ print "\n"; } print "\n"; print "\n"; print "
\n"; $memoheight = 40; unless($gp_titleprev == 2){ $memoheight = 80; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "$title\n"; print "\n"; print "
\n"; print "
\n"; } $top_img = $img; $top_img .='/'; $top_img .= $img_top; unless($gp_menuprev == 2){ print "\n"; print "\n"; unless($popwin == 2){ #別ウインドウを表示するためのJavaScriptをprint print '\n"; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; unless($gp_kousin == 2){ print "\n"; print "\n"; } unless($kwarion == 2){ print "\n"; } print "\n"; print "\n"; if($kwarion == 2){ print "\n"; } print "\n"; print "
\n"; print "\n"; print "\n"; print "\n"; $cargo_img = $img; $cargo_img .='/'; $cargo_img .= $img_cargo; print "\n"; print "\n"; print ""; print "\"ホームページへ\""; print "\n"; print "\n"; unless($popwin == 2){ #別ウインドウを表示するためのJavaScriptをprint print '\n"; } print ""; $post_img = $img; $post_img .='/'; $post_img .= $img_post; print "\"発送送料\""; print "\n"; print "\n"; unless($popwin == 2){ #別ウインドウを表示するためのJavaScriptをprint print '\n"; } print ""; $pay_img = $img; $pay_img .='/'; $pay_img .= $img_pay; print "\"支払方法\""; print "\n"; print "
\n"; unless($popwin == 2){ #別ウインドウを表示するためのJavaScriptをprint print '\n"; } print ""; $waribiki_img = $img; $waribiki_img .='/'; $waribiki_img .= $img_waribiki; print "\"割引情報\""; print "\n"; print "\n"; print ""; $shop_img = $img; $shop_img .='/'; $shop_img .= $img_shop; print "\"連絡先\""; print "\n"; print "\n"; print ""; $hou_img = $img; $hou_img .='/'; $hou_img .= $img_hou; print "\"特定商取引法\""; print "\n"; print "\n"; print "
\n"; } print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "\n"; print "
\n"; print "
\n"; print "
\n"; } sub last{ #ロック解除 &c_lock; print "
"; print "
\n"; if($v_researchpath){ $v_researchpath =~ s/kanri.cgi//g; $v_researchpath .= 'counter2.cgi'; print "\n"; } #HTMLフッターを出力 foreach $prev_text(@htmlfooter_data){ print $prev_text; print "\n"; } if($cgi_name or $copyright){ print "
\n"; print "\n"; print $cgi_name; print " \n"; print '©'; print $copyright; print "\n"; print "
\n"; } print "\n"; exit; } #データロック------------------------------------------------ sub o_lock{ open(LOCK,">data.lock"); flock(LOCK,2); } #ロック解除-------------------------------------------------- sub c_lock{ close(LOCK); }