<?php
//===============初期設定===================
$title = 'KOMOショッピングカート';
$title_img = './title.gif'; //タイトル用画像ファイル
$goback = './goods.php'; //商品ページへのパス
$subject = '「PHPスクリプト無料配布コーナー」より';
$to = 'komochan@komonet.ne.jp'; //メール送信先
$taskrate = 1.05; //消費税を含む率
$data_file = './goods.dat'; //データログ用ファイル
$remail = 1; //返信メールを出すなら1、出さないなら0。
$subject2 = '「KOMOショッピングカート」ご注文確認メール(自動配信)'; //返信メールのタイトル
$message = "この度はご注文有難うございました。以上の内容でご注文を受け付けました。"; //返信メールに添付するメッセージ
//==========================================

//スーパーグローバル変数対策
if(!isset($PHP_SELF)){ $PHP_SELF = $_SERVER["PHP_SELF"]; }
if(!isset(
$action)){ $action = $_POST['action']; }
if(!isset(
$code)){ $code = $_POST['code']; }
if(!isset(
$goods)){ $goods = $_POST['goods']; }
if(!isset(
$price)){ $price = $_POST['price']; }
if(!isset(
$amount)){ $amount = $_POST['amount']; }
if(!isset(
$g_num)){ $g_num = $_POST['g_num']; }
if(!isset(
$S_Cookie)){ $S_Cookie = $_COOKIE["S_Cookie"]; }
if(!isset(
$name)){ $name = $_POST['name']; }
if(!isset(
$pcode)){ $pcode = $_POST['pcode']; }
if(!isset(
$addr)){ $addr = $_POST['addr']; }
if(!isset(
$tel)){ $tel = $_POST['tel']; }
if(!isset(
$email)){ $email = $_POST['email']; }
if(!isset(
$comment)){ $comment = $_POST['comment']; }
if(!isset(
$sum)){ $sum = $_POST['sum']; }

//===============クッキー処理================
if($action == "regist"){
    if(
$amount > 0){
        
$goods_flag = 0;
        if(isset(
$S_Cookie)){
            while(list(
$g_num, $value) = each($S_Cookie)){
                list(
$code2,$goods2,$price2,$amount2) = split(",", $value);
                if(
$code == $code2 && $goods == $goods2){
                    
$goods_flag++;
                    
$value = "$code,$goods,$price,$amount";
                    
setcookie("S_Cookie[$g_num]", $value); //ブラウザを閉じるとリセット
                    
echo "<META HTTP-EQUIV=refresh content=0;URL=$PHP_SELF>";
                    exit;
                }
            }
        }
        if(
$goods_flag < 1){
            
$g_num = time(); //クッキー識別番号を現在の秒数からゲット
            
$value = "$code,$goods,$price,$amount";
            
setcookie("S_Cookie[$g_num]", $value); //ブラウザを閉じるとリセット
            
echo "<META HTTP-EQUIV=refresh content=0;URL=$PHP_SELF>";
            exit;
        }
    }
}elseif(
$action == "remove"){
    
setcookie("S_Cookie[$g_num]", "", time()-3600); //クッキーを削除
    
echo "<META HTTP-EQUIV=refresh content=0;URL=$PHP_SELF>";
    exit;
}elseif(
$action == "delete"){
    while(list(
$g_num, $value) = each($S_Cookie)){
        
setcookie("S_Cookie[$g_num]", "", time()-3600); //クッキーを順に全て削除
    
}
    echo
"<META HTTP-EQUIV=refresh content=0;URL=$PHP_SELF>";
    exit;
}
?>

<HTML>
<HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=x-sjis">
    <TITLE><?php echo $title; ?></TITLE>
    <STYLE TYPE="text/css">
    <!--
    :link     {
            Color : blue ;
            Text-Decoration : None
        }
    :active     {
            Color : blue ;
            Text-Decoration : None
        }
    :visited     {
            Color : blue ;
            Text-Decoration : None
        }
    A:hover     {
            Color : blue ;
            Text-Decoration : UnderLine
        }
    -->
    </STYLE>
</HEAD>
<BODY topmargin="0" leftmargin="0">
<CENTER>
<P>
<TABLE BORDER="0" CELLSPACING="0" WIDTH="100%" HEIGHT="50" BACKGROUND="./top_back.gif">
    <TR>
        <TD WIDTH="100%">
            <P ALIGN="CENTER"><IMG SRC="<?php echo $title_img; ?>" WIDTH="391" HEIGHT="31" ALIGN="BOTTOM" BORDER="0">
        </TD>
    </TR>
    <TR>
        <TD WIDTH="100%">
            <P ALIGN="CENTER"><FONT SIZE="-1">Powered by <A HREF="http://www.komonet.ne.jp/" onMouseOver="this.style.color='red'" onMouseOut="this.style.color='blue'">KOMONET</A></FONT>
        </TD>
    </TR>
</TABLE>
</P>
<P><A HREF="JavaScript:history.back();" onMouseOver="this.style.color='red'" onMouseOut="this.style.color='blue'">一つ前のページへ</A> <A HREF="<?php echo $goback; ?>" onMouseOver="this.style.color='red'" onMouseOut="this.style.color='blue'">商品ページへ</A></P>

<?php
if($action == "send"){
    
$from = $email;
    
$header  = "From: $from";
    
$msg = "";
    
//在庫数判定の為の初期設定
    
$zaiko_flag = 0;
    
$fusoku = "在庫不足商品:";
    while(list(
$g_num, $value) = each($S_Cookie)){
        list(
$dcode,$dgoods,$dprice,$damount) = split(",", $value);
        
$dprice = number_format($dprice);
        
$msg .= "ご注文 = 商品名 $dgoods (価格 $dprice 円)×数量 $damount\n";
        
$repdata = file($data_file);
        
$fp = fopen($data_file, "r");
        for(
$i=0; $i<count($repdata); $i++){
            list(
$rcode,$rg_name,$rfname,$rfname2,$rprice,$rexpl,$ramount) = split( ",", $repdata[$i]);
            if(
$dcode == $rcode){
                
$new_amount = $ramount - $damount;
                
//在庫不足が発生した場合の処理
                
if($new_amount < 0){
                    
$zaiko_flag++;
                    
$fusoku .= "「" . $rg_name . "」";
                }else{
                    
$del_data[] = "$dcode,$damount";
                }
            }
        }
        
fclose($fp);
    }
    
$sum = number_format($sum);
    
$msg .= "合計 = $sum\n";
    
$msg .= "お名前 = $name\n";
    if(
$pcode){ $msg .= "郵便番号 = $pcode\n"; }
    
$msg .= "ご住所 = $addr\n";
    if(
$tel){ $msg .= "電話番号 = $tel\n"; }
    
$msg .= "E-mail = $email\n";
    if(
$comment){ $msg .= "一言どうぞ = $comment\n"; }
    if(
$zaiko_flag > 0){
        echo
"<P><FONT COLOR='red'>タイムラグにより発注直前に在庫数が不足した商品があります。<BR>商品ページへ戻ってやり直して下さい。</FONT></P>\n";
        echo
"<P>" . $fusoku . "</P>\n";
    }else{
        
mb_language("ja");
        
mb_internal_encoding("SJIS");
        if(
mb_send_mail($to, $subject, $msg, $header)){
            
//在庫数の調整
            
while(list($id, $value) = each($del_data)){
                list(
$del_code,$del_amount) = split(",", $value);
                
$repdata = file($data_file);
                
$fp = fopen($data_file, "w");
                
flock($fp, LOCK_EX);
                for(
$i=0; $i<count($repdata); $i++){
                    list(
$code,$g_name,$fname,$fname2,$price,$expl,$amount) = split( ",", $repdata[$i]);
                    if(
$del_code == $code){
                        
$new_amount = $amount - $del_amount;
                        
$repdata[$i] = "$code,$g_name,$fname,$fname2,$price,$expl,$new_amount\n";
                        
fputs($fp, $repdata[$i]);
                    }else{
                        
fputs($fp, $repdata[$i]);
                    }
                }
                
flock($fp, LOCK_UN);
                
fclose($fp);
            }
            echo
"<P>発注メールは無事送信されました。有難うございました。</P>\n";
            echo
"<P><FONT COLOR='red'>クッキーを全て削除したい場合は、下の「クッキー削除」ボタンを押して下さい。</FONT></P>\n";
            echo
"<FORM ACTION=$PHP_SELF METHOD=POST>\n";
            echo
"<INPUT TYPE=HIDDEN NAME=action VALUE=delete>\n";
            echo
"<INPUT TYPE=SUBMIT VALUE=クッキー削除></FORM></P>\n";
            if(
$remail > 0){
                
$header  = "From: $to";
                
$msg2 = "==ご注文内容===========================\n";
                
$msg2 .= $msg;
                
$msg2 .= "=======================================\n";
                
$msg2 .= "$message\n";
                
mb_send_mail($email, $subject2, $msg2, $header);
            }
        }else{
            echo
"<P><FONT COLOR='red'>発注メールの送信に失敗しました。<BR>商品ページへ戻ってやり直して下さい。</FONT></P>\n";
        }
    }
}else{
    if(isset(
$S_Cookie)){
        echo
"<CENTER><TABLE BORDER=0 CELLSPACING=1 BGCOLOR=#666666>\n";
        echo
"<TR><TD BGCOLOR=#FFCCFF><B>商品名</B></TD><TD BGCOLOR=#FFCCFF><B>価格</B></TD><TD BGCOLOR=#FFCCFF><B>数量</B></TD><TD BGCOLOR=#FFCCFF><B>小計</B></TD><TD BGCOLOR=#FFCCFF><B>削除</B></TD></TR>\n";
        while(list(
$g_num, $value) = each($S_Cookie)){
            list(
$dcode,$dgoods,$dprice,$damount) = split(",", $value);
            
$dprice3 = number_format($dprice);
            
$damount3 = number_format($damount);
            
$shoukei = (integer)$dprice * (integer)$damount;
            
$shoukei3 = number_format($shoukei);
            
$goukei += $shoukei;
            echo
"<TR><TD BGCOLOR=white>$dgoods</TD><TD BGCOLOR=white>\ $dprice3</TD><TD BGCOLOR=white>$damount3</TD><TD BGCOLOR=white>\ $shoukei3</TD>\n";
            echo
"<TD BGCOLOR=white><FORM ACTION=$PHP_SELF METHOD=POST>\n";
            echo
"<INPUT TYPE=HIDDEN NAME=action VALUE=remove>\n";
            echo
"<INPUT TYPE=HIDDEN NAME=g_num VALUE=$g_num>\n";
            echo
"<INPUT TYPE=SUBMIT VALUE=削除></TD></TR></FORM>\n";
        }
        
$goukei3 = number_format($goukei);
        echo
"<TR><TD BGCOLOR=#CCFFCC COLSPAN=3><B>合計</B></TD><TD BGCOLOR=#CCFFCC COLSPAN=2><B>\ $goukei3</B></TD></TR>\n";
        
$task = $goukei - (integer)$goukei / $taskrate;
        
$task3 = number_format($task);
        echo
"<TR><TD BGCOLOR=#CCFFCC COLSPAN=3>(内、消費税額)</TD><TD BGCOLOR=#CCFFCC COLSPAN=2>\ $task3</TD></TR></TABLE><BR>\n";
        if(
$action == "kakunin"){
            
//空白対策
            
$name = str_replace(" ", "", $name);
            
$name = str_replace(" ", "", $name);
            
$addr = str_replace(" ", "", $addr);
            
$addr = str_replace(" ", "", $addr);
            
$email = str_replace(" ", "", $email);
            
$email = str_replace(" ", "", $email);
            if(
$name && $addr && $email){
                if(
preg_match("/[\w\d\-\.]+\@[\w\d\-\.]+/", $email)){
                    echo
"<P>ご注文の内容に間違いがなければ、下の「送信」ボタンを押して下さい。</P>\n";
                    echo
"<FORM ACTION=$PHP_SELF METHOD=POST>\n";
                    echo
"<INPUT TYPE=HIDDEN NAME=action VALUE=send>\n";
                    echo
"<INPUT TYPE=HIDDEN NAME=sum VALUE=$goukei>\n";
                    echo
"<TABLE BORDER=0 CELLSPACING=1 BGCOLOR=#666666>\n";
                    echo
"<TR><TD BGCOLOR=#CCFFFF><B>お名前</B></TD><TD BGCOLOR=white>$name</TD></TR>\n";
                    echo
"<INPUT TYPE=HIDDEN NAME=name VALUE=\"$name\">\n";
                    if(
$pcode){
                        echo
"<TR><TD BGCOLOR=#CCFFFF><B>郵便番号</B></TD><TD BGCOLOR=white>$pcode</TD></TR>\n";
                        echo
"<INPUT TYPE=HIDDEN NAME=pcode VALUE=\"$pcode\">\n";
                    }
                    echo
"<TR><TD BGCOLOR=#CCFFFF><B>ご住所</B></TD><TD BGCOLOR=white>$addr</TD></TR>\n";
                    echo
"<INPUT TYPE=HIDDEN NAME=addr VALUE=\"$addr\">\n";
                    if(
$tel){
                        echo
"<TR><TD BGCOLOR=#CCFFFF><B>電話番号</B></TD><TD BGCOLOR=white>$tel</TD></TR>\n";
                        echo
"<INPUT TYPE=HIDDEN NAME=tel VALUE=\"$tel\">\n";
                    }
                    if(
$email){
                        echo
"<TR><TD BGCOLOR=#CCFFFF><B>E-mail</B></TD><TD BGCOLOR=white>$email</TD></TR>\n";
                        echo
"<INPUT TYPE=HIDDEN NAME=email VALUE=\"$email\">\n";
                    }
                    if(
$comment){
                        
$comment2 = nl2br($comment); //HTML改行文字の挿入
                        
echo "<TR><TD BGCOLOR=#CCFFFF><B>一言どうぞ</B></TD><TD BGCOLOR=white>$comment2</TD></TR>\n";
                        echo
"<INPUT TYPE=HIDDEN NAME=comment VALUE=\"$comment\">\n";
                    }
                    echo
"</TABLE><BR>\n";
                    echo
"<INPUT TYPE=SUBMIT VALUE=送信></FORM>\n";
                }else{
                    echo
"<P><FONT COLOR='red'>メールアドレスの書式が無効です。前のページに戻ってやり直して下さい。</FONT></P>\n";
                }
            }else{
                echo
"<P><FONT COLOR='red'>必須事項が記入されていません。前のページに戻ってやり直して下さい。</FONT></P>\n";
            }
        }else{
            echo
"ご注文がお決まりになりましたら、下の申込欄に必要事項をご記入の上、発注ボタンを押して下さい。\n";
            echo
"<FORM ACTION=$PHP_SELF METHOD=POST>\n";
            echo
"<INPUT TYPE=HIDDEN NAME=action VALUE=kakunin>\n";
            echo
"<TABLE BORDER=0 CELLSPACING=1 BGCOLOR=#666666>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>お名前</B></TD><TD BGCOLOR=white><INPUT TYPE=TEXT NAME=name SIZE=40> <FONT COLOR='red' SIZE=2>*必須!</FONT></TD></TR>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>郵便番号</B></TD><TD BGCOLOR=white><INPUT TYPE=TEXT NAME=pcode SIZE=15></FONT></TD></TR>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>ご住所</B></TD><TD BGCOLOR=white><INPUT TYPE=TEXT NAME=addr SIZE=60> <FONT COLOR='red' SIZE=2>*必須!</FONT></TD></TR>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>電話番号</B></TD><TD BGCOLOR=white><INPUT TYPE=TEXT NAME=tel SIZE=20></TD></TR>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>E-mail</B></TD><TD BGCOLOR=white><INPUT TYPE=TEXT NAME=email SIZE=30> <FONT COLOR='red' SIZE=2>*必須!</FONT></TD></TR>\n";
            echo
"<TR><TD BGCOLOR=#CCFFFF><B>一言どうぞ</B></TD><TD BGCOLOR=white><TEXTAREA NAME=comment ROWS=5 COLS=50></TEXTAREA></TD></TR></TABLE><BR>\n";
            echo
"<INPUT TYPE=SUBMIT VALUE=発注する> <INPUT TYPE=RESET VALUE=書き直す></FORM>\n";
        }
    }else{
        echo
"<P>現在選択された商品はございません。</P>\n";
    }
}
?>

</CENTER>
</BODY>
</HTML>