#!/usr/local/bin/perl

#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#\\  Creation company : WEB service DIC (ウェブサービス ディック)
#\\  produce by Manabu_Kimura
#\\  http://www.d-ic.com/
#\\  DIC-Studio Shop_v52 Version:2.0 (2004/02/09)
#\\  Copyright (C) DIC All Rights Reserved. このスクリプトの再配布などを禁止します.
#\\  バグ報告は studio@d-ic.com 宛にお願いします。
#\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

##=====================================
##           初期設定部分             =
##=====================================

# 一時ファイルを削除するタイミング(秒数)
$temp_dir_del = '86400';	# 86400(秒) = 1(日) * 24(時間) * 60(分) * 60(秒)

# カゴの中の数量（変更できる範囲を指定）
# 例：1〜5までに設定したい場合、$goods_kazu = '1,5';
$goods_kazu = '1,5';

# 注文時の入力必須項目（'と,で区切る）
# お支払い		siharai
# お名前		name
# 郵便番号		zip
# 都道府県		address1
# 住所			address2
# 電話番号		tel
# ファックス	fax
# Eメール		email
# コメント		comment
@hissu = ('siharai','name','address2','email');

# このファイル
$self = 'shop.cgi';

# 一時ファイル作成ディレクトリ
$temp_dir = './cago/';	# パーミッションを 777 に設定

# テンプレート（商品確認）
$html1 = 'step1.html';

# テンプレート（注文書記入）
$html2 = 'step2.html';

# テンプレート（注文確認）
$html3 = 'step3.html';

# テンプレート（通信販売法）
$html4 = 'aboutus.html';

# クッキーネーム
$cookiename = 'dicshop';

# クッキーの有効時間（秒で指定する）
$expires = '2592000';	# 初期値1ヶ月(2592000) = 30日×24時間×60分×60秒


##=====================================
## サブルーチン                       =
##=====================================
require './jcode.pl';
require './stdio.pl';
require './sub.pl';
require './setup.pl';
&setup;


#□□□□□□□□□□□□ ここから下を修正した場合にはサポート対象外になります。ご注意ください。 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□





##=====================================
## データを受け取る                   =
##=====================================
%param = ();
@key_list = stdio::getFormData(\%param, "", sjis, 1);
$param{'email'} =~ s/．/./g;


##=====================================
## 一時ファイル                       =
##=====================================
$tmp_file1 = $temp_dir.$ENV{'REMOTE_ADDR'};	# 一時ファイル（IPアドレスを使用）



#□□□□□ モード なし □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
if(!$param{'mode'}){

##=====================================
## カゴに入れる処理                   =
##=====================================
if($param{'action'} eq 'in_goods'){ &ingoods; }


##=====================================
## カゴの商品を削除する処理           =
##=====================================
elsif($param{'action'} eq 'del'){ &delgoods; }


##=====================================
## 再計算                             =
##=====================================
elsif($param{'action'} eq 'calc'){ &calc; }


##=====================================
## 不要な一時ファイルを削除           =
##=====================================
@tempfile = glob($temp_dir."*");
foreach(@tempfile){
	@stat = stat $_;
	if($temp_dir_del < (time - $stat[9])){ unlink $_; }
}


##=====================================
## 一時ファイルオープン               =
##=====================================
if(-e $tmp_file1){
	if(!open(DATA,$tmp_file1)){ &error('システムエラー','一時ファイルをオープンできません。'); }
	@data = <DATA>;
	close(DATA);
}


##=====================================
## カゴの中身を表示                   =
##=====================================
@goodskazu = split(/,/,$goods_kazu);	# 再計算の数の範囲

if(-e $tmp_file1){
$cnt = '1';
foreach(@data){
	@data2 = split(/,/);
	($name,$price,$kazu,$note1,$note2) = @data2;
	$price1 = $price * $kazu;		# 小計
	$price2 = $price1 + $price2;	# 税抜き合計
	chomp $_;	# 改行を切り捨てる
	$indata .= qq| <input type="hidden" name="order$cnt" value="$name,$price,$kazu,$note1,$note2,">\n |;
	1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	1 while $price1 =~ s/(.*\d)(\d\d\d)/$1,$2/g;	#桁カンマを入れる処理
	1 while $kazu =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	# 再計算の数の範囲
	$goodskazucnt = $goodskazu[0];
	$goodskazudata = '';
	foreach($goodskazu[0] .. $goodskazu[1]){
		$goodskazudata .= qq|      <option value="$self?action=calc&data_num=$cnt&goodskazu=$goodskazucnt">$goodskazucnt</option>\n|;
		$goodskazucnt++;
	}
	
	# URLエンコード
	stdio::urlencode(\$_);
	
	# 書き出し
	$goods .= qq|
  <tr>
   <form>
    <td align="center" class="table-color3">$cnt</td>
    <td class="table-color4">$name</td>
    <td align="right" class="table-color4">$price</td>
    <td align="right" class="table-color4">
     <select onChange="popJump(this)">
      <option value="$self?action=calc&data_num=$cnt&goodskazu=$kazu">$kazu</option>
$goodskazudata
     </select>
    </td>
    <td class="table-color4">$note1&nbsp;</td>
    <td class="table-color4">$note2&nbsp;</td>
    <td align="right" class="table-color4">$price1</td>
    <td align="center" class="table-color4"><input type="button" value="削除" onClick="location.href='$self?action=del&data=$_'"></td>
   </form>
  </tr>|;
	$cnt++;
}

$zeikin = $price2 * $zei / 100;	# 消費税
$zeikin = int($zeikin);			# 小数点以下切り捨て
$price3 = $price2 + $zeikin;	# 合計金額

1 while $price2 =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
1 while $zeikin =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
1 while $price3 =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理

$indata .= qq| <input type="hidden" name="price2" value="$price2">\n |;
$indata .= qq| <input type="hidden" name="zeikin" value="$zeikin">\n |;
$indata .= qq| <input type="hidden" name="price3" value="$price3">\n |;

$price2 .= qq|<input type="hidden" name="税別合計" value="$price2">|;		# 税別合計
$zeikin .= qq|<input type="hidden" name="消費税" value="$zeikin">|;			# 消費税
$price3 .= qq|<input type="hidden" name="税込み合計" value="￥$price3">|;	# 税込み合計

}else{
$goods = qq|<tr><td colspan="8" align="center" class="table-color4"><br>現在、カゴの中身は空です。<br><br></td></tr>|;
}


##=====================================
## テンプレートをオープン             =
##=====================================
if(!open(HTML,$html1)){ &error('システムエラー','テンプレートファイルをオープンできません。'); }
@html = <HTML>;
close(HTML);


##=====================================
## データの置き換え                   =
##=====================================
$copyright = qq|<a href="http://www.d-ic.com/" target="_blank">カゴシステム : DIC-Studio</a>|;
$contact .= "カゴシステム ライセンス番号：".$usernum."\n";
foreach(@html){
	s/_%cago_title%_/$cago_title/g;
	s/_%page_title%_/$page_title/g;
	s/_%homepage%_/$homepage/g;
	s/_%goods%_/$goods/g;
	s/_%zeiritu%_/$zei/g;
	s/_%kei1%_/$price2/g;
	s/_%kei2%_/$price3/g;
	s/_%zei%_/$zeikin/g;
	s/_%indata%_/$indata/g;
	s/_%contact%_/$contact/g;
	if(/_%copyright%_/){ $copyright_error = '1'; }
	s/_%copyright%_/$copyright/g;
}
if(!$copyright_error){ &error('システムエラー','著作権表示を削除することはできません。'); }


##=====================================
## ＨＴＭＬ出力                       =
##=====================================
print <<"EOF";
Content-type: text/html

@html
EOF
exit;
}	# モード なし ここまで





#□□□□□ モード step2 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
elsif($param{'mode'} eq 'step2'){

##=====================================
## 商品が選択されていない場合のエラー =
##=====================================
if(!$param{'price3'}){ &error('エラー','商品が選択されていません。'); }


##=====================================
## 注文商品を表示                     =
##=====================================
$cnt = '1';
foreach(@key_list){
	if($_ eq 'mode'){ next; }
	elsif($_ eq 'zeikin'){ next; }
	elsif($_ eq 'price2'){ next; }
	elsif($_ eq 'price3'){ next; }
	@data2 = split(/,/,$param{$_});
	($name,$price,$kazu,$note1,$note2) = @data2;
	chomp $_;	# 改行を切り捨てる
	$price1 = $price * $kazu;		# 小計
	$indata .= qq| <input type="hidden" name="order$cnt" value="$name,$price,$kazu,$note1,$note2,">\n |;
	1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	1 while $price1 =~ s/(.*\d)(\d\d\d)/$1,$2/g;	#桁カンマを入れる処理
	1 while $kazu =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	$goods .= qq|
  <tr>
   <td align="center" class="table-color3">$cnt</td>
   <td class="table-color4">$name</td>
   <td align="right" class="table-color4">$price</td>
   <td align="right" class="table-color4">$kazu</td>
   <td class="table-color4">$note1&nbsp;</td>
   <td class="table-color4">$note2&nbsp;</td>
   <td align="right" class="table-color4">$price1</td>
  </tr>|;
	$cnt++;
}


##=====================================
## Ｃｏｏｋｉｅを読み込む
##=====================================
%COOKIE = ();
stdio::getCookie($cookiename, \%COOKIE);
if($COOKIE{'name'}){ $name = $COOKIE{'name'}; }else{ $name = ''; }
if($COOKIE{'zip'}){ $zip = $COOKIE{'zip'}; }else{ $zip = ''; }
if($COOKIE{'address1'}){
	$address1 = qq|     <option value="$COOKIE{'address1'}" selected>$COOKIE{'address1'}</option>|;
}else{ $address1 = ''; }
if($COOKIE{'address2'}){ $address2 = $COOKIE{'address2'}; }else{ $address2 = ''; }
if($COOKIE{'tel'}){ $tel = $COOKIE{'tel'}; }else{ $tel = ''; }
if($COOKIE{'fax'}){ $fax = $COOKIE{'fax'}; }else{ $fax = ''; }
if($COOKIE{'email'}){ $email = $COOKIE{'email'}; }else{ $email = ''; }


##=====================================
## テンプレートをオープン             =
##=====================================
if(!open(HTML,$html2)){ &error('システムエラー','テンプレートファイルをオープンできません。'); }
@html = <HTML>;
close(HTML);


##=====================================
## データの置き換え                   =
##=====================================
$copyright = qq|<a href="http://www.d-ic.com/" target="_blank">カゴシステム : DIC-Studio</a>|;
$contact .= "カゴシステム ライセンス番号：".$usernum."\n";
foreach(@html){
	s/_%name%_/$name/g;
	s/_%zip%_/$zip/g;
	s/_%address1%_/$address1/g;
	s/_%address2%_/$address2/g;
	s/_%tel%_/$tel/g;
	s/_%fax%_/$fax/g;
	s/_%email%_/$email/g;
	s/_%cago_title%_/$cago_title/g;
	s/_%page_title%_/$page_title/g;
	s/_%homepage%_/$homepage/g;
	s/_%goods%_/$goods/g;
	s/_%zeiritu%_/$zei/g;
	s/_%kei1%_/$param{'price2'}/g;
	s/_%kei2%_/$param{'price3'}/g;
	s/_%zei%_/$param{'zeikin'}/g;
	s/_%indata%_/$indata/g;
	s/_%contact%_/$contact/g;
	if(/_%copyright%_/){ $copyright_error = '1'; }
	s/_%copyright%_/$copyright/g;
}
if(!$copyright_error){ &error('システムエラー','著作権表示を削除することはできません。'); }


##=====================================
## ＨＴＭＬ出力                       =
##=====================================
print <<"EOF";
Content-type: text/html

@html
EOF
exit;
}	# モード step2 ここまで





#□□□□□ モード step3 □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
elsif($param{'mode'} eq 'step3'){

##=====================================
## 入力必須項目のチェック             =
##=====================================
foreach(@hissu){
	if(!$param{$_}){
		s/siharai/お支払い方法/g;
		s/name/お名前/g;
		s/zip/郵便番号/g;
		s/address1/都道府県/g;
		s/address2/住所/g;
		s/tel/電話/g;
		s/fax/ファックス/g;
		s/email/Ｅメール/g;
		s/comment/コメント/g;
		$hissu_error .= "・".$_."<br>";
		$errorflag = '1';
	}
}
if($errorflag){ &error('入力エラー',"以下の必須項目に入力がありませんでした。<br><br>$hissu_error"); }


##=====================================
## Eメール入力のチェック              =
##=====================================
if($param{'email'}){
	if($param{'email'} =~ /^\S+@\S+\.\S+/){ ; }
	else{ &error('入力エラー',"Eメールアドレスの入力を間違えています。"); }
	if($param{'email'} =~ /Ａ|Ｂ|Ｃ|Ｄ|Ｅ|Ｆ|Ｇ|Ｈ|Ｉ|Ｊ|Ｋ|Ｌ|Ｍ|Ｎ|Ｏ|Ｐ|Ｑ|Ｒ|Ｓ|Ｔ|Ｕ|Ｖ|Ｗ|Ｘ|Ｙ|Ｚ/){ &error('入力エラー',"Eメールアドレスの入力が間違えています。半角英数字を使用してください。"); }
	if($param{'email'} =~ /ａ|ｂ|ｃ|ｄ|ｅ|ｆ|ｇ|ｈ|ｉ|ｊ|ｋ|ｌ|ｍ|ｎ|ｏ|ｐ|ｑ|ｒ|ｓ|ｔ|ｕ|ｖ|ｗ|ｘ|ｙ|ｚ/){ &error('入力エラー',"Eメールアドレスの入力が間違えています。半角英数字を使用してください。"); }
}


##=====================================
## HTML構成文字を置き換え             =
##=====================================
foreach(@key_list){
	&trString(\$param{$_}, 1, 0, 1, 0, 0);
}


##=====================================
## 注文商品を表示                     =
##=====================================
$cnt = '1';
foreach(@key_list){
	if($_ eq 'mode'){ next; }
	elsif($_ eq 'zeikin'){ next; }
	elsif($_ eq 'price2'){ next; }
	elsif($_ eq 'price3'){ next; }
	elsif($_ eq 'siharai'){ next; }
	elsif($_ eq 'name'){ next; }
	elsif($_ eq 'zip'){ next; }
	elsif($_ eq 'address1'){ next; }
	elsif($_ eq 'address2'){ next; }
	elsif($_ eq 'tel'){ next; }
	elsif($_ eq 'fax'){ next; }
	elsif($_ eq 'email'){ next; }
	elsif($_ eq 'comment'){ next; }
	elsif($_ eq 'remail'){ next; }
	elsif($_ eq 'cookie'){ next; }
	@data2 = split(/,/,$param{$_});
	($name,$price,$kazu,$note1,$note2) = @data2;
	chomp $_;	# 改行を切り捨てる
	$price1 = $price * $kazu;		# 小計
	1 while $price =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	1 while $price1 =~ s/(.*\d)(\d\d\d)/$1,$2/g;	#桁カンマを入れる処理
	1 while $kazu =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理
	$indata .= qq| <input type="hidden" name="商品$cnt" value="商品名：$name //単価：$price //数量：$kazu //備考1：$note1 //備考2：$note2">\n |;
	$goods .= qq|
  <tr>
   <td align="center" class="table-color3">$cnt</td>
   <td class="table-color4">$name</td>
   <td align="right" class="table-color4">$price</td>
   <td align="right" class="table-color4">$kazu</td>
   <td class="table-color4">$note1&nbsp;</td>
   <td class="table-color4">$note2&nbsp;</td>
   <td align="right" class="table-color4">$price1</td>
  </tr>|;
	$cnt++;
}

# 商品代金合計
$indata .= qq| <input type="hidden" name="商品代金合計" value="$param{'price2'}">\n |;

# 代金引換手数料
($siharai1, $siharai2) = split(/;/,$param{'siharai'});
if($siharai2){
	$daibiki_calc = $daibiki;
	$etc = qq|
 <tr>
  <td class="table-color1" colspan="6" align="center">代金引換の手数料</td>
  <td class="table-color2" colspan="1" align="right">$daibiki</td>
 </tr>|;
    $indata .= qq| <input type="hidden" name="代引手数料" value="$daibiki">\n |;
}

# 送料
$param{'price2'} =~ s/,//g;
if($param{'price2'} >= $souryou_service){ $souryou = '0'; }
else{ $souryou2 = $souryou = $souryou{$param{'address1'}}; }
1 while $souryou =~ s/(.*\d)(\d\d\d)/$1,$2/g;		#桁カンマを入れる処理

$etc .= qq|
 <tr>
  <td class="table-color1" colspan="6" align="center">送料</td>
  <td class="table-color2" colspan="1" align="right">$souryou</td>
 </tr>|;
$indata .= qq| <input type="hidden" name="送料" value="$souryou">\n |;

# 総合計金額
$param{'zeikin'} =~ s/,//g;
$sougoukei = $param{'price2'} + $daibiki_calc + $souryou2;
$uchizei = int($sougoukei / (100 + $zei) * $zei);
1 while $uchizei =~ s/(.*\d)(\d\d\d)/$1,$2/g;
1 while $param{'price2'} =~ s/(.*\d)(\d\d\d)/$1,$2/g;
1 while $sougoukei =~ s/(.*\d)(\d\d\d)/$1,$2/g;
$indata .= qq| <input type="hidden" name="総合計金額" value="$sougoukei円（内消費税:$uchizei円）">\n |;


##=====================================
## テンプレートをオープン             =
##=====================================
if(!open(HTML,$html3)){ &error('システムエラー','テンプレートファイルをオープンできません。'); }
@html = <HTML>;
close(HTML);


##=====================================
## データの置き換え                   =
##=====================================
if($param{'remail'}){ $remail = $param{'remail'}; $f_remail = $param{'remail'}; }
else{ $remail = "コピーを送信しない"; $f_remail = '';}
$copyright = qq|<a href="http://www.d-ic.com/" target="_blank">カゴシステム : DIC-Studio</a>|;
$contact .= "カゴシステム ライセンス番号：".$usernum."\n";
foreach(@html){
	s/_%cago_title%_/$cago_title/g;
	s/_%page_title%_/$page_title/g;
	s/_%homepage%_/$homepage/g;
	s/_%goods%_/$goods/g;
	s/_%zeiritu%_/$zei/g;
	s/_%kei1%_/$param{'price2'}/g;
	s/_%kei2%_/$sougoukei/g;
	s/_%zei%_/$uchizei/g;
	s/_%etc%_/$etc/g;
	s/_%indata%_/$indata/g;
	s/_%siharai%_/$siharai1/g;
	s/_%name%_/$param{'name'}/g;
	s/_%zip%_/$param{'zip'}/g;
	s/_%address1%_/$param{'address1'}/g;
	s/_%address2%_/$param{'address2'}/g;
	s/_%tel%_/$param{'tel'}/g;
	s/_%fax%_/$param{'fax'}/g;
	s/_%email%_/$param{'email'}/g;
	s/_%comment%_/$param{'comment'}/g;
	s/_%contact%_/$contact/g;
	s/_%remail%_/$remail/g;
	s/_%f_remail%_/$f_remail/g;
	if(/_%copyright%_/){ $copyright_error = '1'; }
	s/_%copyright%_/$copyright/g;
}
if(!$copyright_error){ &error('システムエラー','著作権表示を削除することはできません。'); }


##=====================================
## Ｃｏｏｋｉｅの設定
##=====================================
if($param{'cookie'}){
	$cookie{'name'} = $param{'name'};
	$cookie{'zip'} = $param{'zip'};
	$cookie{'address1'} = $param{'address1'};
	$cookie{'address2'} = $param{'address2'};
	$cookie{'tel'} = $param{'tel'};
	$cookie{'fax'} = $param{'fax'};
	$cookie{'email'} = $param{'email'};
}


##=====================================
## ＨＴＭＬ出力                       =
##=====================================
print "Content-type: text/html\n";
stdio::setCookie($cookiename, \%cookie, 0, $expires, "/");
print "\n";

print <<"EOF";
@html
EOF
exit;
}	# モード step3 ここまで





#□□□□□ モード aboutus □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
elsif($param{'mode'} eq 'aboutus'){

##=====================================
## テンプレートをオープン             =
##=====================================
if(!open(HTML,$html4)){ &error('システムエラー','テンプレートファイルをオープンできません。'); }
@html = <HTML>;
close(HTML);


##=====================================
## データの置き換え                   =
##=====================================
foreach(@html){
	s/_%body%_/$aboutus/g;
}


##=====================================
## ＨＴＭＬ出力                       =
##=====================================
print <<"EOF";
Content-type: text/html

@html
EOF
exit;
}	# モード aboutus ここまで





#□□□□□ モード cookiedel □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
elsif($param{'mode'} eq 'cookiedel'){

##=====================================
## Ｃｏｏｋｉｅの設定
##=====================================
$cookie{'name'} = '';
$cookie{'zip'} = '';
$cookie{'address1'} = '';
$cookie{'address2'} = '';
$cookie{'tel'} = '';
$cookie{'fax'} = '';
$cookie{'email'} = '';


##=====================================
## ＨＴＭＬ出力                       =
##=====================================
print "Content-type: text/html\n";
stdio::setCookie($cookiename, \%cookie, 0, $expires, "/");
print "\n";

print <<"EOF";
<html>
<head>
<title>クッキーの内容を削除</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<style type="text/css">
<!--
body {
	color: #333333;
	background-color: #FFFFFF;
	margin: 0px;
	font-size: 14px;
}
td {
	font-size: 14px;
	line-height: 125%;
}
a {
	color: #0033CC;
}
.font12 {
	font-size: 12px;
}
-->
</style>
</head>

<body bgcolor="#FFFFFF" text="#333333" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="380" border="0" align="center" cellpadding="5" cellspacing="0">
 <tr>
  <td align="right"><a href="JavaScript:window.close()" class="font12">閉じる</a></td>
 </tr>
 <tr>
  <td>
   <br>
   <br>クッキーの内容を削除しました。
  </td>
 </tr>
</table>
</body>
</html>
EOF
exit;
}	# モード cookiedel ここまで

else{ &error('エラー','不正なアクセスです。'); }





##=====================================
## 一時ファイルを作成、又は追加       =
##=====================================
sub ingoods 
{
if(-e $tmp_file1){
	if(!open(TMP,"+<$tmp_file1")){ &error('システムエラー','一時ファイルをオープンできませんでした。'); }
}else{
	if(!open(TMP,">$tmp_file1")){ &error('システムエラー','一時ファイルを作成できませんでした。'); }
	chmod 0666, $tmp_file1;
}
@data = <TMP>;

foreach(@key_list){
	$param{$_} =~ s/,//g;
}

$new_data = "$param{'name'},$param{'price'},$param{'kazu'},$param{'note1'},$param{'note2'},\n";
push(@data,$new_data);

seek(TMP,0,0);
print TMP @data;
truncate(TMP,tell(TMP));
close(TMP);

print "Location: $shopcgi\n\n";
}


##=====================================
## 対象のカゴデータを削除             =
##=====================================
sub delgoods 
{
if(!open(TMP,"+<$tmp_file1")){ &error('システムエラー','一時ファイルをオープンできませんでした。'); }
@data = <TMP>;

foreach(@data){
	chomp $_;
	if($param{'data'} eq $_){
		$_ = '';
		last;
	}
	$_ .= "\n";
}

seek(TMP,0,0);
print TMP @data;
truncate(TMP,tell(TMP));
close(TMP);

if(-z $tmp_file1){ unlink $tmp_file1; }
print "Location: $shopcgi\n\n";
}


##=====================================
## 再計算処理                         =
##=====================================
sub calc 
{
if(!open(TMP,"+<$tmp_file1")){ &error('システムエラー','一時ファイルをオープンできませんでした。'); }
@data = <TMP>;

$num = $param{'data_num'} - 1;
($name,$price,$kazu,$note1,$note2,) = split(/,/,$data[$num]);
$data[$num] = "$name,$price,$param{'goodskazu'},$note1,$note2,\n";

seek(TMP,0,0);
print TMP @data;
truncate(TMP,tell(TMP));
close(TMP);
print "Location: $shopcgi\n\n";
}
