다음 이전 차례

15. 쇼핑 몰 만들기

쇼핑 몰은 특정 상품을 구매자들이 웹 상에서 실제로 쇼핑을 하는 것과 같이 구현 하는 것이 중요 합니다.    먼저 구매자들은 해당 사이트의 계정이 있어야 하고 실제 쇼핑을 할 때와 같이 바구니 항목을 만듭니다.    바구니는 구매자의 선택 물건을 임시로 저장 하며 주문 때 선별 할 수 있습니다.    주문서의 경우 회원 가입 때 작성한 정보를 이용해 저장 되며 받을 주소는 변경 가능 해야 합니다.    그리고,해당 사이트의 메인 화면에 특정 상품으로의 이동 링크가 존재 합니다.

그림. 15-1 쇼핑 몰 음악 항목

15.1 쇼핑 몰 테이블 만들기

    쇼핑 몰 테이블은 총 3개의 테이블로 구성 됩니다.
    차례로 pduct(제품의 정보 저장) , shopuser(구매자가 선택한 물품 정보) , sub(주문서) 입니다. 
    Shopuser 테이블은 바구니 역할을 하며 해당 제품의 가격과 수량 등의 정보를 저장 합니다. 경매와 자료실
    게시판과는 달리 쇼핑몰 테이블은 admin영역에서 새롭게 만드는 기능이 없으며 직접 만들어 줘야 합니다.
    보다 다양하고 admin 중심의 쇼핑 몰을 구성 하기 위해서는 상품의 가격과 구매 단가 , 물품 구입시 마진등
    상품 하나의 정보를 관리자 측면에서 구성 해야 합니다.
    물론 각 물품의 브라우저 출력과 관련된 일련의 작업 또한 간단하게 관리 할 수 있어야 합니다.

데이터 베이스 만들기

    mysql>create databases shop ;

    쇼핑 몰에 사용할 테이블을 생성 하기 위한 데이터 베이스를 만듭니다.
    참고로 이전 자료실과 경매 게시판에 사용한 데이터 베이스는 libchal 하나로 사용 했었습니다. 

테이블 만들기

    ./mysql -u root -p shop < shop.sql 

    CD의 shop.sql 파일을 이용해서 쇼핑 몰에 사용할 3개의 테이블을 생성 합니다.
    새로운 필드와 레코드를 추가 , 수정 하기 위해서 이 파일을 사용 하는 방법도 있습니다.

그림. 15-2 shop.sql

테이블 구성 인자

    쇼핑 몰 테이블은 총 3개 이며 스크립트 파일은 2개로 이루어 집니다.
    테이블은 상품의 정보를 저장하는 테이블과 쇼핑한 물건을 저장하는 테이블, 주문서 테이블로 이루어 집니다.

상품의 정보를 저장하는 테이블(pduct)

    상품의 이미지와 설명 가격 등을 저장 합니다.

    image - BLOB 타입 이며 관리자가 등록한 이미지를 바이너리 형태로 저장 합니다.
    price - 상품 가격을 저장합니다.
    pdname - 상품의 이름을 저장합니다.
    cont - 상품의 설명을 저장합니다.
    sel - 상품의 종목 코드를 저장합니다. 종목 코드는 관리자가 상품을 분류하기 위해 임의로 부여하는 숫자입니다.

선택한 상품을 저장 하는 테이블(shopuser)

    구매자가 쇼핑을 하면서 선택한 물건을 볼 수 있는 테이블이고, 일명 바구니라고 합니다.

    user - 사이트 로그인 때 사용한 ID 세션을 저장합니다.
    pduct - 선택한 상품 이름을 저장합니다.
    num - 선택한 상품의 수량을 저장합니다.
    price - 상품의 가격을 저장합니다.
    bprice - 상품의 단가를 저장합니다.

상품 주문을 저장 하는 테이블(sub)

    구매자가 상품을 바구니에 담은 후 이것을 주문하기 위해 작성한 주문서의 내용을 저장 합니다.
    이것은 각 구매자의 ID 세션을 이용하는 방법이며, 각 구매자의 주문 현황을 만들기 위해 이 테이블을
    사용할 수 있습니다.

    user - ID 세션을 저장합니다.
    wdate - 구매 신청서 작성날짜를 저장합니다.
    pduct - 신청한 상품을 저장합니다.
    price - 상품의 총 가격을 저장합니다.
    bprice - 해당 상품의 단가를 저장합니다.
    num - 선택한 상품의 총 수량을 저장합니다.
    inmoney - 결재를 위한 은행이름을 저장합니다.
    name - 구매자의 이름을 저장합니다.
    address - 상품을 받을 주소를 저장합니다.

15.2 쇼핑 몰 게시판 소스 만들기

쇼핑 몰의 소스는 각 화면을 보여주는 함수 형식의 shop_e.php 파일과 함수를 이용해 화면에 출력하는 shop.php 파일이 있습니다.    그리고 쇼핑 몰은 상품의 이미지를 브라우저에 출력 하는 부분이 존재 합니다.    이것을 HTML로 일일이 링크를 만들어 출력 하는 방법도 존재합니다. 관리자의 경우 정말 번거로운 일입니다.    여기서는 이미지를 Mysql에 저장해서 사용 했습니다.    저장된 이미지를 출력 하기 위해sajin.php 파일을 사용 합니다.

shop_e.php 전체 코드

    <?php

    $connect = mysql_connect('localhost','root','gksmf444');

    mysql_select_db('shop',$connect);


    function add_pd($table,$username,$pdname,$num,$price,$connect,$sel)
    {
      $ally=mysql_query("select user,pduct,num,price,bprice from shopuser
      where user='$username' and pduct='$pdname'",$connect);

      $nums=mysql_fetch_array($ally);


      if($nums == 0)
      {
        mysql_query("insert into
        $table values('$username','$pdname','$num','$price','$price')",$connect);
      }
      else
      {
        $num = $num + $nums[num];
        $price = $price + $nums[price];
 
        mysql_query("update $table set num='$num',price='$price'
        where user='$username' and pduct='$pdname'",$connect);
      }
    }


    function del_pd($username,$pdname,$connect,$sel)
    {
      $ally=mysql_query("select user,pduct,num,price,bprice from shopuser
      where user='$username' and pduct='$pdname'",$connect);

      $nums=mysql_fetch_array($ally);


      if($nums[num] == 1)
      {
        mysql_query("delete from shopuser where pduct='$pdname'
        and user='$username'",$connect);
      }
      else
      {
        $numx = $nums[num] - "1";
        $pricex = $nums[price] - $nums[bprice];

        mysql_query("update shopuser set num='$numx',price='$pricex'
        where user='$username' and pduct='$pdname'",$connect);
      }
    }


    function main_shop($connect,$shop,$username,$sel)
    {
      $ally = mysql_query("select pdname,price,cont,sel from pduct
      where sel='$sel'",$connect);


      $t_num=mysql_num_rows($ally);


      echo("
      <html>
      <title>
      main_view html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <table border=0 cellspacing=2 cellpadding=2 width=600 >
      <tr>
      <th bgcolor=gray colspan=4 align=center>
      <font style='font-size:12px;font-style:italic;color:#blue'>
      <b> 맘에드는 상품을 골라봐요 얼른..</b></font></th>
      </tr>
      ");


      if(!$t_num)
      {      
        echo ("
        <tr>
        <th bgcolor=black colspan=4>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>등록된 상품이 엄스요...  ^^;</b></font></th>
        </tr>
        </center>
        </table>
        </html>
        ");
      }
      else
      {
        for($pd=$t_num ; $pd > 0 ; $pd--)
        {
          $put=mysql_fetch_array($ally);
          $cont = nl2br($put[cont]);


          echo("
          <tr>
          <td bgcolor=gray colspan=4>
          </tr>
          <tr>
          <td bgcolor=black>
          <font style='font-size:13px;font-style:italic;color:blue'>
          <img src=sajin.php?sel=$sel&pdname=$put[pdname] border=0></font></td>


          <td bgcolor=black>
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$cont</b></font></a></td>


          <td bgcolor=black>
          &nbsp
          </td>
          </tr>


          <tr>
          <td bgcolor=black>
          <font style='font-size:13px;font-style:italic;color:blue'>
          $put[pdname]</font></td>


          <td bgcolor=black align=center>
          <font style='font-size:13px;font-style:italic;color:red'>
          <b>$put[price]원</b></font></td>


          <td bgcolor=black width=50>
          <form method=post action=shop.php>
          <input type=text name=num size=4 value=1>
          <input type=hidden name=pdname value=$put[pdname]>
          <input type=hidden name=price value=$put[price]>
          <input type=hidden name=user value=$username>
          <input type=hidden name=table value=shopuser>
          <input type=hidden name=chanl value=shop_e>
          <input type=hidden name=sel value=$sel>
          <input type=submit value=담기>
          </form>
          </td>
          </tr>
          ");
        }
      }


      echo("
      <tr>
      <td bgcolor=black colspan=7>&nbsp;</td>
      </tr>
      <tr>
      <td bgcolor=black colspan=7 align=center>
      ");


      echo("
      </td>
      </tr>
      </center>
      </table>
      <br>
      <center>

      <table border=0 cellspacing=2 cellpadding=2 width=700 >

      <tr>
      <td bgcolor=black width=100>
      <a href =shop.php?chanl=item_show&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>바구니</b></font></a></td>


      <td bgcolor=black width=100>
      <a href =userin.php?chanl=main_view&username=$username>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>Home</b></font></a></td>


      <td bgcolor=black width=100>
      <a href =shop.php?chanl=sub2&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>주문 내역/취소</b></font></a></td>


      <td bgcolor=black width=100>
      <a href =db_view.php?chanl=rootin>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>

      <b>Admin</b></font></a></td>


      </tr>
      </table>
      </center>
      </html>
      ");
    }


    function item_show($table,$username,$connect,$sel)
    {
      $ally = mysql_query("select user,pduct,num,price,bprice from shopuser
      where user='$username'  ",$connect);


      $t_num=mysql_num_rows($ally);


      echo("
      <html>
      <title>
      main_view html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>

      <table border=0 cellspacing=2 cellpadding=2 width=800 >

      <tr>
      <th bgcolor=gray colspan=6 align=center>
      <font style='font-size:12px;font-style:italic;color:#red'>
      <b>쇼핑 집합소 바구니 입니다.장바구니져^^;</b></font></th>
      </tr>


      <tr>
      <td bgcolor=black width=200 align=center>
      <font style='font-size:13px;font-style:italic;color:blue'>
      <b>제품명</b></font></td>


      <td bgcolor=black width=100 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>수량</b></font></a></td>


      <td bgcolor=black width=200 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>단가</b></font></a></td>


      <td bgcolor=black width=200 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>합계</b></font></a></td>


      <td bgcolor=black width=100 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>봇다리</b></font></a></td>
      </tr>
      ");


      for($pd=$t_num ; $pd > 0 ; $pd--)
      {
        $put=mysql_fetch_array($ally);
        $total = $total+($put[bprice] * $put[num]);


        echo("
        <tr>
        <td bgcolor=black width=200 align=center>
        <font style='font-size:13px;font-style:italic;color:blue'>
        $put[pduct]</font></td>


        <td bgcolor=black width=100 align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put[num]ea</b></font></td>


        <td bgcolor=black align=center width=200>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put[bprice]원</b></font></td>


        <td bgcolor=black align=center width=200>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put[price]원</b></font>
        </td>


        <td bgcolor=black align=left width=100>
        <form method=post action=shop.php>
        <input type=hidden name=pdname value=$put[pduct]>
        <input type=hidden name=chanl value=del_pd>
        <input type=hidden name=sel value=$sel>
        <input type=submit value=털기>
        </form>
        </td>
        ");
      }


      echo("
      </tr>
      </table>


      <table border=0 cellspacing=2 cellpadding=2 width=800 >

      <tr>
      <td bgcolor=black align=center width=200>
      <a href =shop.php?sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>쇼핑 계속하기</b></font></a></td>


      <td bgcolor=black align=center width=200>
      <a href =shop.php?chanl=sub&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>주문하기</b></font></a></td>


      <td bgcolor=black align=right width=200>
      <font style='font-size:13px;font-style:italic;color:blue'>
      <b>총금액</b></font></td>


      <td bgcolor=black align=center width=200>
      <font style='font-size:13px;font-style:italic;color:red'>
      <b>$total 원</b></font></td>
      </tr>
      </table>
      </center>
      </html>
      ");
    }


    function error_view($edate,$address,$inmoney,$name)
    {

      if(!$address)
      {
        echo("
        <script>
        window.alert('address가 없습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
      }


      if(!$inmoney)
      {
        echo("
        <script>
        window.alert('입금할 은행이 없습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
      }


      if(!$edate)
      {
        echo("
        <script>
        window.alert('마감일이 없습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
      }


      if(!$name)
      {
        echo("
        <script>
        window.alert('name이 없습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
      }
    }

    ?>

소스 설명

    쇼핑의 각 화면을 함수 형식으로 만들었고 사이트에 따라 다양한 화면을 추가 할 수 있습니다.
    물론 조건 문 나열 형식을 사용해서 각 화면을 표현 할 수 있습니다.

데이터 베이스 접속

    $connect = mysql_connect('localhost','root','gksmf444');
    /* mysql 접속을 위한 호스트 이름 , 계정 , 비밀 번호 입니다. */

 
    mysql_select_db('shop',$connect);
   /* shop 데이터 베이스를 선택 합니다. */

add_pd($table,$username,$pdname,$num,$price,$cont,$connect,$sel) 함수

    구매자가 선택한 물건을 담는 바구니 함수 입니다. 

함수 인자

    function add_pd($table,$username,$pdname,$num,$price,$connect,$sel)
    {

 
    $table - 테이블 이름을 전달 합니다.
             나중에 다양한 테이블 사용을 용이하게 하고 여러 개의 쇼핑 바구니 항목을 추가 할 수 있습니다.
    $username - 사용자의 ID 세션을 전달합니다.
    $pdname - 선택한 상품 이름을 전달합니다.
    $num - 선택한 상품의 수량을 전달합니다.
    $price - 선택한 상품의 가격을 전달합니다.
    $connect - 데이터 베이스 접속 항목을 전달합니다.
    $sel - 구매 제품의 종목 번호를 전달합니다.

데이터 베이스 Query 만들기

    $ally=mysql_query("select user,pduct,num,price,bprice from shopuser 
    where user='$username' and pduct='$pdname'",$connect);
    /* 바구니 테이블(shopuser)에서 해당 구매자와 상품이름이 존재하면 구매자, 상품이름, 수량, 가격, 
       단가 등의 정보를 검색 합니다. */

    $nums=mysql_fetch_array($ally);
    /* 위 바구니 테이블의 정보를 $nums 변수에 배열로 저장 합니다. */   

바구니에 상품 담기

    if($nums == 0)
    {
      mysql_query("insert into $table
      values('$username','$pdname','$num','$price','$price')",$connect);
    }
    /* 바구니 테이블에 아무런 정보도 없을 경우 구매자가 선택한 상품의 정보를 해당 테이블에 저장 합니다. */
    else
    {
      $num = $num + $nums[num];
      $price = $price + $nums[price];
      /* $num , $price의 값을 기존의 값과 더합니다. 이것은 해당 ID 세션을 가진 구매자가 선택한 물건이
         존재할 경우 기존에 있던 상품의 수량과 가격을 더하는 것입니다. */


      mysql_query("update $table set num='$num',price='$price'
      where user='$username' and pduct='$pdname'",$connect);
    }
    /* 수정된 $num 과 $price를 해당 테이블에 저장 합니다.*/
    }

del_pd($username,$pdname,$connect,$sel) 함수

    쇼핑 몰의 각 종목에 해당하는 메인 화면을 출력 합니다. $sel 변수가 제품의 종목 번호를 전달 합니다.

데이터 베이스 Query 만들기

    $ally=mysql_query("select user,pduct,num,price,bprice from shopuser
    where user='$username' and pduct='$pdname'",$connect);
    /* shopuser테이블에서 해당 ID 세션과 상품에 대하여 정보를 검색 합니다. */

    $nums=mysql_fetch_array($ally);
    /* 해당 테이블의 정보를 $nums에 배열로 저장 합니다. */

바구니 상품 제거하기

    if($nums[num] == 1)
    {

      mysql_query("delete from shopuser where pduct='$pdname'
      and user='$username'",$connect);
    }
    /* 바구니에 해당 상품이 하나 존재 할 경우 테이블에서 완전히 삭제 합니다. */
    else
    {
      $numx = $nums[num] - "1";
      $pricex = $nums[price] - $nums[bprice];
      /* 바구니에 해당 상품이 하나 이상일 경우 해당 상품의 수량을 하나 삭제 하고 총 가격에서 해당 상품의 단가를 빼줍니다.  */

      mysql_query("update shopuser set num='$numx',price='$pricex'
      where user='$username' and pduct='$pdname'",$connect);
    }
    /* 수정된 $numx 와 $pricex를 해당 테이블에 저장 합니다. */

main_shop($connect,$shop,$username,$sel) 함수

    쇼핑 몰의 각 종목에 해당하는 메인 화면을 출력 합니다. $sel 변수가 제품의 종목 번호를 전달 합니다.

데이터 베이스 Query 만들기

    $ally = mysql_query("select pdname,price,cont,sel from pduct where sel='$sel'",$connect);
    /* 상품 정보 테이블(pduct)에서 해당 종목의 상품 정보를 검색 합니다. 
       검색 필드는 상품 이름 , " , 상품 설 , 상품 종목 번호 입니다. */


    $t_num=mysql_num_rows($ally);
    /* 상품 정보 테이블에 존재하는 상품의 수를 해당 변수에 저장 합니다. */

상품 정보 화면 출력 하기

    if(!$t_num)
    {
      echo ("
      <tr>
      <th bgcolor=black colspan=4>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>등록된 상품이 엄스요...  ^^;</b></font></th>
      </tr>
      </center>
      </table>
      </html>
      ");
    }
    /* 상품 정보 테이블에 등록된 상품이 없을 경우 출력 하는 화면 입니다. */
    else
    {
      for($pd=$t_num ; $pd > 0 ; $pd--)
      {
      /* 상품 정보 테이블에 등록된 상품이 있을 경우 실행 합니다.
         해당 for문은 테이블에 존재 하는 상품의 수를 이용해서 그 수 만큼 반복합니다. */


        $put=mysql_fetch_array($ally);
        /* 해당 종목의 상품 정보를 $t_num 변수에 배열로 저장 합니다. */


        $cont = nl2br($put[cont]);
        /* 데이터 베이스에 저장된 상품의 설명을 브라우저에 출력 하기 위해 nl을 <br>로 바꿉니다. */

        echo("
        <tr>
        <td bgcolor=gray colspan=4>
        </tr>
        <tr>
        <td bgcolor=black>
        <font style='font-size:13px;font-style:italic;color:blue'>
        <img src=sajin.php?sel=$sel&pdname=$put[pdname] border=0></font></td>
        /* 해당 상품의 이미지를 출력 합니다. sajin.php 파일에 출력 되는 이미지를 출력 합니다.*/
        <td bgcolor=black>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$cont</b></font></a></td>
        /* 해당 상품에 대한 설명을 출력 합니다. */


        <td bgcolor=black>
        &nbsp
        </td>
        </tr>
        

        <tr>
        <td bgcolor=black>
        <font style='font-size:13px;font-style:italic;color:blue'>
        $put[pdname]</font></td>
        /* 해당 상품의 가격을 출력 합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:red'>
        <b>$put[price]원</b></font></td>
        /* 해당 상품의 가격을 출력 합니다. */


        <td bgcolor=black width=50>
        <form method=post action=shop.php>
        <input type=text name=num size=4 value=1>
        <input type=hidden name=pdname value=$put[pdname]>
        <input type=hidden name=price value=$put[price]>
        <input type=hidden name=user value=$username>
        <input type=hidden name=table value=shopuser>
        <input type=hidden name=chanl value=shop_e>
        <input type=hidden name=sel value=$sel>
        <input type=submit value=담기>
        </form>
        /* 각 상품의 수량을 선택하고 바구니에 전달하는 "담기" 버튼을 생성 합니다.
           상품 수량은 shop.php 파일에 전 하며 기본 수량은 1개입니다.
           전달 인자는 상품 이름 , 상품 " , ID 세션 , 테이블 이름(새로운 쇼핑 몰을 만들 경우 적용) , 
           해당 인자를 적용할 chanl , 상품 종목 번호를 전달 합니다. */


        </td>
        </tr>
        "); 
      }
    }

다른 화면 링크 만들기

    echo("
    </td>
    </tr>
    </center>
    </table>
    <br>
    <center>
    <table border=0 cellspacing=2 cellpadding=2 width=700 >
    <tr>
    <td bgcolor=black width=100>
    <a href =shop.php?chanl=item_show&sel=$sel>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>바구니</b></font></a></td>
    /* 선택한 물건을 보여주는 바구니 링크를 만듭니다.
       Shop.php 파일의 chanl이 item_show 항목을 실행 하며 상품의 종목 번호도 전달합니다. */


    <td bgcolor=black width=100>
    <a href =userin.php?chanl=main_view&username=$username>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>Home</b></font></a></td>
    /* 사이트 메인 화면으로 링크 합니다. 해당 ID 세션을 전달 해서 메인 화면에 로그인 상태를 보여 줍니다. */

    <td bgcolor=black width=100>
    <a href =shop.php?chanl=sub2&sel=$sel>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>주문 내역/취소</b></font></a></td>
    /* 주문 내역을 취소하는 화면으로 링크 합니다. */


    <td bgcolor=black width=100>
    <a href =db_view.php?chanl=rootin>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>Admin</b></font></a></td>
    /* 사이트의 전반적인 제어를 하는 admin 영역으로 링크 합니다. */
    </tr>
    </table>
    </center>
    </html>
    ");

item_show($table,$username,$connect,$sel) 함수

    선택한 상품을 보여주는 바구니 항목 입니다. 함수 인자는 위 다른 함수의 내용과 같습니다.

그림. 15-3 바구니 화면

데이터 베이스 Query 만들기

    $ally = mysql_query("select user,pduct,num,price,bprice from shopuser
    where user='$username'  ",$connect);
    /* shopuser 테이블에서 로그인 한 ID 세션에 해당 하는 정보를 검색 합니다. */

    $t_num=mysql_num_rows($ally);
    /* 해당 ID 세션의 검색 수량을 $t_num 변수에 저장 합니다. */

바구니에 담은 상품 출력 하기

    for($pd=$t_num ; $pd > 0 ; $pd--)
    {
    /* shopuser 테이블에 존재하는 해당 ID의 모든 상품을 출력 합니다. */


      $put=mysql_fetch_array($ally);
      $total = $total+($put[bprice] * $put[num]);
      /* 선택한 상품의 총 가격을 구합니다. $total = 기존의 total + ( 해당 상품 단가 * 해당 상품 수량) 으로 구해집니다. */


      echo("
      <tr>
      <td bgcolor=black width=200 align=center>
      <font style='font-size:13px;font-style:italic;color:blue'>
      $put[pduct]</font></td>
      /* 해당 상품의 이름을 출력 합니다. */
      <td bgcolor=black width=100 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>$put[num]ea</b></font></td>
      /* 해당 상품의 수량을 출력 합니다. */


      <td bgcolor=black align=center width=200>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>$put[bprice]원</b></font></td>
      /* 해당 상품의 기본 단가를 출력 합니다. */


      <td bgcolor=black align=center width=200>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>$put[price]원</b></font>
      /* 해당 상품의 총 금액을 출력 합니다. */
      </td>
      <td bgcolor=black align=left width=100>
      <form method=post action=shop.php>
      <input type=hidden name=pdname value=$put[pduct]>
      <input type=hidden name=chanl value=del_pd>
      <input type=hidden name=sel value=$sel>
      <input type=submit value=털기>
      /* 선택한 상품을 삭제 하는 "털기" 버튼을 생성 합니다.
         shop.php의 chanl=del_pd 항목을 실행 하며 상품 이름 상품 종목을 전달합니다. */
      </form>
      </td>
      ");
    }

다른 화면 링크 만들기

    바구니 화면에서는 다시 쇼핑을 계속하는 버튼과 상품을 주문하는 항목 , 총 금액 등이 존재 합니다.


    echo("
    </tr>
    </table>


    <table border=0 cellspacing=2 cellpadding=2 width=800 >
    <tr>
    <td bgcolor=black align=center width=200>
    <a href =shop.php?sel=$sel>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>쇼핑 계속하기</b></font></a></td>
    /* 해당 쇼핑의 메인 화면으로 링크 합니다. */


    <td bgcolor=black align=center width=200>
    <a href =shop.php?chanl=sub&sel=$sel>
    <font style='font-size:13px;font-style:italic;color:#ffd700'>
    <b>주문하기</b></font></a></td>
    /* 바구니에 담은 상품을 주문 하기 위한 링크 입니다. shop.php 파일의 chanl=sub항목을 실행 하며 상품 종목을 전달합니다. */


    <td bgcolor=black align=right width=200>
    <font style='font-size:13px;font-style:italic;color:blue'>
    <b>총금액</b></font></td>


    <td bgcolor=black align=center width=200>
    <font style='font-size:13px;font-style:italic;color:red'>
    <b>$total 원</b></font></td>
    /* 바구니에 담은 상품의 총 금액을 출력 합니다. */


    </tr>
    </table>
    </center>
    </html> ");

shop.php 전체 코드

    <?php
    session_start();
    ?>


    <?

    include('shop_e.php');

    if(!$username || $username == guest)
    {
      echo("
      <script>
      window.alert('Login 하세요. Guest거나 ID가 없으신 분은 회원 가입을 하세요')
      history.go(-1)
      </script>
      ");
      exit;
    }
    else
    {
      if(!$chanl)
      {
        main_shop($connect,$shop,$username,$sel);
      }


      if($chanl==shop_e)
      {
        add_pd($table,$username,$pdname,$num,$price,$connect,$sel);
        main_shop($connect,$shop,$username,$sel);
      }


      if($chanl ==item_show)
      {
        item_show($table,$username,$connect,$sel);
      }


      if($chanl == del_pd)
      {
        del_pd($username,$pdname,$connect,$sel);
        item_show($table,$username,$connect,$sel);
      }


      if($chanl == sub)
      {
        $ally = mysql_query("select user from shopuser where user='$username'  ",$connect);
        $t_num=mysql_num_rows($ally);


        if(!$t_num)
        {
          echo("
          <script>
          window.alert('선택한 상품이 없습니다.')
          history.go(-1)
          </script>
          ");
          exit;
        }


        mysql_select_db('selectuser',$connect);
        $ally = mysql_query("select resident,email,tel1,id from userin
        where id='$username'",$connect);
        $put=mysql_fetch_array($ally);


        echo("
        <html>
        <title>
        sub html
        </title>
        <body bgcolor=black>
        <center>
        <img src=skyt1.jpg border=0>
        <br>


        <form method=post action=shop.php>
        <input type=hidden name=chanl value=sub_e>
        <input type=hidden name=sel value=$sel>


        <table border=0 cellspacing=2 cellpadding=2 width=700 >
        <tr><font style='font-size:13px;font-style:italic;color:#fffff0'>
        (* 추가 주문시 '신청합니다'만 클릭 하면 됩니다.)</font>
        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~받을주소</b></font></td>


        <td bgcolor=black align=left><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <input type=text name=address size=44></font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Name</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <input type=text name=name size=10></font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~주민번호</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[resident]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Id</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[id]</font></td>
        </tr>
        <tr>

        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~입금은행</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <select name=inmoney>
          <option value=국민은행 selected>국민은행
          <option value=한빛은행>한빛은행
          <option value=조흥은행>조흥은행
          <option value=우리은행>우리은행
        </select>
        </font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~E-mail</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[email]</font></td>
        </tr>
        <tr>
        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Tel</b></font></td>

        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[tel1]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~배달시간</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <select name=edata1>
          <option value=2000 selected>Y2K
          <option value=2001>Y21
        </select>
        <select name=edata2>
          <option value=1>1mon
          <option value=2>2mon
          <option value=3>3mon
          <option value=4 selected>4mon
          <option value=5>5mon
          <option value=6>6mon
          <option value=7>7mon
          <option value=8>8mon
          <option value=9>9mon
          <option value=10>10mon
          <option value=11>11mon
          <option value=12>12mon
          </select>
          <select name=edata3>
          <option value=1>1day
          <option value=2>2day
          <option value=3>3day
          <option value=4>4day
          <option value=5>5day
          <option value=6>6day
          <option value=7>7day
          <option value=8>8day
          <option value=9>9day
          <option value=10>10day
          <option value=11>11day
          <option value=12>12day
          <option value=13>13day
          <option value=14 selected>14day
          <option value=15>15day
          <option value=16>16day
          <option value=17>17day
          <option value=18>18day
          <option value=19>19day
          <option value=20>20day
          <option value=21>21day
          <option value=22>22day
          <option value=23>23day
          <option value=24>24day
          <option value=25>25day
          <option value=26>26day
          <option value=27>27day
          <option value=28>28day
          <option value=29>29day
          <option value=30>30day
          <option value=31>31day
        </select>
        <select name=edata4>
          <option value=am>A.m
          <option value=pm selected>P.m
        </select>
        <select name=edata5>
          <option value=1>1si
          <option value=2>2si
          <option value=3 selected>3si
          <option value=4>4si
          <option value=5>5si
          <option value=6>6si
          <option value=7>7si
          <option value=8>8si
          <option value=9>9si
          <option value=10>10si
          <option value=11>11si
          <option value=12>12si
        </select>
        <select name=edata6>
          <option value=10>10
          <option value=20>20
          <option value=30>30
          <option value=40 selected>40
          <option value=50>50
          <option value=00>00
        </select>
        </font></td>
        </tr>
        </table>
        <br><br>
        <table border=0 cellspacing=2 cellpadding=2 width=700 >
        <tr>


        <td bgcolor=black align=center width=200>
        <a href =shop.php?user=$username&sel=$sel>
        <font style='font-size:13px;font-style:italic;color:#ffd700'>
        <b>쇼핑 계속하기</b></font></a></td>
        

        <td bgcolor=black align=center width=200>
        <a href =shop.php?user=$user&chanl=item_show&sel=$sel>
        <font style='font-size:13px;font-style:italic;color:#ffd700'>
        <b>바구니</b></font></a></td>


        <td bgcolor=black align=center ><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <input type=submit value=신청합니다.>
        <input type=reset  value=지우기></font></td>
        </tr>
        </table>
        </form>
        </center>
        </body>
        </html>
        ");
      }


      if($chanl == sub_e)
      {
        $ally=mysql_query("select user,pduct,num,price,bprice from shopuser
        where user='$username'",$connect);

        $t_num=mysql_num_rows($ally);


        if($edata4 == am && $edata5 == 12)
        {
          $ap = "00" ;
        }
        if($edata4 == pm && $edata5 == 12)
        {
          $ap = "12" ;
        }
        if($edata4 == am)
        {
          $ap = $edata5 ;
        }
        if($edata4 == pm)
        {
          $ap = $edata5 +"12" ;
        }
        $edate = "$edata1-$edata2-$edata3-$ap-$edata6";
  

        for($pd=$t_num ; $pd > 0 ; $pd--)
        {
          $put=mysql_fetch_array($ally);
          $ally2=mysql_query("select * from sub where user='$username'
          and pduct='$put[pduct]'",$connect);


          $put2=mysql_fetch_array($ally2);


          if($put2[pduct] != $put[pduct])
          {
            $numall = $put[num] ;

            error_view($edate,$address,$inmoney,$name);

            mysql_query("insert into sub values('$username','$edate','$put[pduct]',
            '$put[price]','$put[bprice]','$numall','$inmoney','$name','$address')",$connect);
          }
          else
          {
            $numall = $put[num] + $put2[num] ;

            mysql_query("update sub set num='$numall'
            where user='$username' and pduct='$put2[pduct]'",$connect);
          }
        }  


        echo("
        <html>
        <body>
        <center>
        <form method=post action=shop.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>신청 되었습니다</b></font>


        <input type=hidden name=chanl value=sub2>
        <input type=hidden name=sel value=$sel>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");
      }


      if($chanl == sub2)
      {
        $ally=mysql_query("select * from sub where user='$username' ",$connect);


        mysql_select_db('selectuser',$connect);
        $ally2=mysql_query("select resident,tel1,id from userin
        where id='$username' ",$connect);


        $put=mysql_fetch_array($ally2);
        $t_num2=mysql_num_rows($ally);


        if(!$t_num2)
        {  
          echo("
          <script>
          window.alert('주문한 상품이 없습니다.')
          history.go(-1)
          </script>
          ");
          exit;
        }


        echo("
        <html>
        <title>
        sub html
        </title>


        <body bgcolor=black>
        <center>
        <img src=skyt1.jpg border=0>
        <br>

        <table border=0 cellspacing=2 cellpadding=2 width=600>

        <tr>
        <td bgcolor=white colspan=5 align=center colspan=2>
        <font style='font-size:13px;font-style:italic;color:black'>
        <b> 계산서~</b></font></td>
        </tr>
        <tr>


        <td bgcolor=#808080 align=center width=200>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~품명</b></font></td>
      

        <td bgcolor=#808080 align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~수량</b></font></td>


        <td bgcolor=#808080 align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~단가</b></font></td>


        <td bgcolor=#808080 align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~희망 도착일</b></font></td>
        </tr>
        ");


        for($pd=$t_num2 ; $pd >= 1 ; $pd--)
        {
          $put2=mysql_fetch_array($ally);
          $total = $total+($put2[bprice] * $put2[num]);

  
          echo("
          <tr>


          <td bgcolor=black align=center>
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[pduct]</b></font></td>


          <td bgcolor=black align=center>
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[num]ea</b></font></td>


          <td bgcolor=black align=center>
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[bprice]원</b></font></td>


          <td bgcolor=black align=center>
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[wdate]</b></font></td>
          </tr>
          ");
        }


        echo("
        </table>
        <table border=0 cellspacing=2 cellpadding=2 width=600>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~받을주소</b></font></td>


        <td bgcolor=black align=left><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put2[address]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Name</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put2[name]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Id</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[id]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~주민번호</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[resident]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~입금은행</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put2[inmoney] 예금주:cry 444-44-44-444</font></td>
        </tr>
        <tr>

        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~Tel</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
        $put[tel1]</font></td>
        </tr>
        <tr>


        <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>~총금액</b></font></td>


        <td bgcolor=black><font style='font-size:13px;font-style:italic;color:red'>
        <b>$total</b>원</font></td>
        </tr>
        </table>
        <br>

        <table border=0 cellspacing=2 cellpadding=2 width=700 >


        <td bgcolor=black align=center width=200>
        <a href =shop.php?user=$username&sel=$sel>
        <font style='font-size:13px;font-style:italic;color:#ffd700'>
        <b>쇼핑 계속하기</b></font></a></td>


        <td bgcolor=black align=center width=200>
        <a href =shop.php?chanl=item_show&sel=$sel>
        <font style='font-size:13px;font-style:italic;color:#ffd700'>
        <b>바구니</b></font></a></td>


        <td bgcolor=black align=center width=200>
        <a href =shop.php?chanl=del&sel=$sel>
        <font style='font-size:13px;font-style:italic;color:#ffd700'>
        <b>주문취소</b></font></a></td>
        </tr>
        </table>
        </center>
        </body>
        </html>
        ");
      }


      if($chanl == del )
      {
        mysql_query("delete from sub where user='$username' ",$connect);
        mysql_query("delete from shopuser where user='$username'",$connect);


        echo("
        <html>
        <body>
        <center>
        <form method=post action=shop.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>신청이 삭제 되었습니다</b></font>
        <input type=hidden name=sel value=$sel>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");
      }
    }

    ?>

소스 설명

    shop.php 파일은 shop_e.php 파일의 함수를 이용해서 화면에 출력 하는 루틴과 ID 세션을 이용한 사용자
    접근을 설정 합니다.   세션의 경우 가입자의 ID를 그대로 사용해서 만들기 때문에 문제점이 있을 수
    있습니다.   즉 rand( ) 함수를 사용해서 각 ID별 세션을 무작위 수로 설정 하는 방법을 사용하면 보다 
    안전할 수 있습니다.   이것은 쿠키도 마찬가지 입니다. 만약 어떤 사용자가 스크립트를 이용해서 해당
    ID의 세션을 생성하고 접근 한다면 문제가 될 수 있습니다.

ID 세션 설정

    <?php
    session_start();
    ?>
    /* 세션을 시작 합니다. 로그인한 ID 세션을 시작 합니다. */


    <?

    include('shop_e.php');
    /* shop_e.php 파일의 함수를 포함 합니다. */

    if(!$username || $username == guest)
    {
      echo("
      <script>
      window.alert('Login 하세요. Guest거나 ID가 없으신 분은 회원 가입을 하세요')
      history.go(-1)
      </script>");
      exit;
      }
      else
      {
      /* ID 세션이 없거나 로그인한 ID 세션이 guest 일 경우 쇼핑 몰을 사용할 수 없습니다.
         그 밖의 경우 쇼핑 몰의 모든 화면을 볼 수 있습니다.
         즉 세션의 영역은 if( ){    ~   }else{  쇼핑 몰의 각 화면 }  입니다.*/

메인 화면 출력

    if(!$chanl)
    {
      main_shop($connect,$shop,$username,$sel);
    }
    /* chanl 이 없을 경우 쇼핑 몰의 메인 화면을 출력 합니다. */

상품 바구니 담기

    if($chanl==shop_e)
    {
      add_pd($table,$username,$pdname,$num,$price,$connect,$sel);
      main_shop($connect,$shop,$username,$sel);
    }
    /* chanl이 shop_e일 경우 구매자가 선택한 상품을 해당 바구니에 저장 하고 다시 쇼핑 몰 메인 화면으로 이동 합니다. */

바구니 상품 보여주기

    if($chanl ==item_show)
    {
      item_show($table,$username,$connect,$sel);
    }
    /* chanl이 item_show일 때 구매자가 선택한 상품을 담은 바구니의 내용을 출력 합니다. */

바구니 상품 삭제 하기

    if($chanl == del_pd)
    {
      del_pd($username,$pdname,$connect,$sel);
      item_show($table,$username,$connect,$sel);
    }
    /* chanl이 del_pd일 때 선택한 상품을 바구니에서 삭제 하고 다시 바구니의 남은 상품을 출력 합니다. */

상품 주문하기

그림. 15-4 상품 주문하기 화면
    if($chanl == sub)
    {
    /* chanl이 sub일 경우 아래의 항목을 실행 합니다. */

      $ally = mysql_query("select user from shopuser where user='$username'  ",$connect);
      $t_num=mysql_num_rows($ally);
      /* 바구니(shopuser 테이블)에서 해당 ID가 선택한 상품이 있는지 검색 합니다. */


      if(!$t_num)
      {
        echo("
        <script>
        window.alert('선택한 상품이 없습니다.')
        history.go(-1)
        </script>
        ");
        exit;
      }
      /* 바구니에 선택한 상품이 하나도 없을 경우 출력 하는 화면 입니다. */


      mysql_select_db('selectuser',$connect);
      /* 로그인한 ID 세션의 사용자 정보를 가져 오기 위해 selectuser 데이터 베이스를 선택 합니다. */


      $ally = mysql_query("select resident,email,tel1,id from userin
      where id='$username'",$connect);
      /* 해당 ID 세션을 가진 구매자의 정보를 검색 합니다. */


      $put=mysql_fetch_array($ally);
      /* 구매자의 정보를 배열로 저장 합니다. */


      echo("
      <html>
      <title>
      sub html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>


      <form method=post action=shop.php>
      <input type=hidden name=chanl value=sub_e>


      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <tr><font style='font-size:13px;font-style:italic;color:#fffff0'>
      (* 추가 주문시 '신청합니다'만 클릭 하면 됩니다.)</font>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~받을주소</b></font></td>


      <td bgcolor=black align=left><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=text name=address size=44></font></td>
      /* 상품을 받을 주소를 입력 하는 부분 입니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Name</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=text name=name size=10></font></td>
      /* 해당 구매자의 실제 이름을 입력 하는 곳입니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~주민번호</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[resident]</font></td>
      /* 해당 구매자의 주민 번호를 입력 하는 부분 입니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Id</b></font></td>

      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[id]</font></td>
      /* 해당 구매자의 로그인 때 사용한 ID를 출력 합니다. */

      </tr>
      <tr>

      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~입금은행</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <select name=inmoney>
        <option value=국민은행 selected>국민은행
        <option value=한빛은행>한빛은행
        <option value=조흥은행>조흥은행
        <option value=우리은행>우리은행
      </select>
      </font></td>
      /* 상품 대금을 결제 하기 위한 은행을 선택하는 부분 입니다. */

      </tr>
      <tr>

      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~E-mail</b></font></td>

      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[email]</font></td>
      /* 해당 구매자의 메일 주소를 출력 하는 부분 입니다. */

      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Tel</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[tel1]</font></td>
      /* 해당 구매자의 전화번호를 출력 합니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~배달시간</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <select name=edata1>
      <option value=2000 selected>Y2K
      <option value=2001>Y21
      </select>
      <select name=edata2>
        <option value=1>1mon
        <option value=2>2mon
        <option value=3>3mon
        <option value=4 selected>4mon
        <option value=5>5mon
        <option value=6>6mon
        <option value=7>7mon
        <option value=8>8mon
        <option value=9>9mon
        <option value=10>10mon
        <option value=11>11mon
        <option value=12>12mon
      </select>
        <select name=edata3>
        <option value=1>1day
        <option value=2>2day
        <option value=3>3day
        <option value=4>4day
        <option value=5>5day
        <option value=6>6day
        <option value=7>7day
        <option value=8>8day
        <option value=9>9day
        <option value=10>10day
        <option value=11>11day
        <option value=12>12day
        <option value=13>13day
        <option value=14 selected>14day
        <option value=15>15day
        <option value=16>16day
        <option value=17>17day
        <option value=18>18day
        <option value=19>19day
        <option value=20>20day
        <option value=21>21day
        <option value=22>22day
        <option value=23>23day
        <option value=24>24day
        <option value=25>25day
        <option value=26>26day
        <option value=27>27day
        <option value=28>28day
        <option value=29>29day
        <option value=30>30day
        <option value=31>31day
      </select>
      <select name=edata4>
        <option value=am>A.m
        <option value=pm selected>P.m
      </select>
      <select name=edata5>
        <option value=1>1si
        <option value=2>2si
        <option value=3 selected>3si
        <option value=4>4si
        <option value=5>5si
        <option value=6>6si
        <option value=7>7si
        <option value=8>8si
        <option value=9>9si
        <option value=10>10si
        <option value=11>11si
        <option value=12>12si
      </select>
      <select name=edata6>
        <option value=10>10
        <option value=20>20
        <option value=30>30
        <option value=40 selected>40
        <option value=50>50
        <option value=00>00
      </select>
      </font></td>
      /* select문을 이용해 상품을 받을 날짜와 시간을 입력 하는 부분 입니다. */


      </tr>
      </table>
      <br><br>
      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <tr>


      <td bgcolor=black align=center width=200>
      <a href =shop.php?user=$username&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>쇼핑 계속하기</b></font></a></td>
      /* 해당 상품 종목의 쇼핑 메인 화면으로 링크 합니다. */


      <td bgcolor=black align=center width=200>
      <a href =shop.php?user=$user&chanl=item_show&sel=$sel>

      <font style='font-size:13px;font-style:italic;color:#ffd700'>

      <b>바구니</b></font></a></td>

      /* 해당 구매자의 바구니로 링크 합니다. */


      <td bgcolor=black align=center ><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=submit value=신청합니다.>
      <input type=reset  value=지우기></font></td>
      /* 위 입력 사항을 주문서 테이블에 전달 하는 "신청합니다" 버튼을 생성 합니다. */
      </tr>
      </table>
      </form>
      </center>
      </body>
      </html>
      ");
    }

신청한 상품 정보 저장 하기

    if($chanl == sub_e)
    {
      /* chanl이 sub_e일 때 아래 항목을 실행 합니다. */


      $ally=mysql_query("select user,pduct,num,price,bprice from shopuser
      where user='$username'",$connect);
      /* 바구니 테이블에서 해당 구매자가 선택한 상품 정보를 검색 합니다. */


      $t_num=mysql_num_rows($ally);
      /* 바구니의 상품 수량을 검색하고 $t_num 변수에 저장 합니다. */


      if($edata4 == am && $edata5 == 12)
      {
        $ap = "00" ;
      }
      if($edata4 == pm && $edata5 == 12)
      {
        $ap = "12" ;
      }
      if($edata4 == am)
      {
        $ap = $edata5 ;
      }
      if($edata4 == pm)
      {
        $ap = $edata5 +"12" ;
      }
     

      $edate = "$edata1-$edata2-$edata3-$ap-$edata6";
      /* 상품 배달 날짜와 시간을 am ,pm 여부를 검색 하고 $edate 변수에 저장 합니다. */


      for($pd=$t_num ; $pd > 0 ; $pd--)
      {
      /* 바구니의 상품 수량 만큼 루프를 반복 합니다. */


        $put=mysql_fetch_array($ally);
        /* 바구니의 상품 정보를 배열로 저장 합니다. */


        $ally2=mysql_query("select * from sub where user='$username'
        and pduct='$put[pduct]'",$connect);
        /* 해당 구매자의 해당 상품이 주문 테이블(sub)에 존재 하는지 검색 합니다. */


        $put2=mysql_fetch_array($ally2);
        /* 해당 구매자의 해당 상품의 정보를 $put2 변수에 배열로 저장 합니다. */


        if($put2[pduct] != $put[pduct])
        {
        /* 주문서 테이블(sub)에 해당 구매자가 이전에 신청한 상품이 없을 경우 실행 합니다. */

          $numall = $put[num] ;

          error_view($edate,$address,$inmoney,$name);


          mysql_query("insert into sub values('$username','$edate','$put[pduct]',
          '$put[price]','$put[bprice]','$numall','$inmoney','$name','$address')",$connect);
          /* 해당 구매자가 신청한 새로운 상품의 정보를 sub 테이블에 저장 합니다. */
        }
        else
        {
        /* 해당 구매자가 새롭게 신청한 상품이 sub 테이블에 존재할 경우 실행 합니다. */


          $numall = $put[num] + $put2[num] ;


          mysql_query("update sub set num='$numall'
          where user='$username' and pduct='$put2[pduct]'",$connect);
          /* sub 테이블의 상품과 새롭게 신청한 상품이 같으므로 갱신해서 sub 테이블에 저장 합니다. */

        }
      }


      echo("
      <html>
      <body>
      <center>
      <form method=post action=shop.php>
      <font style='font-size:13px;font-style:italic;color:#808080'>
      <b>신청 되었습니다</b></font>
      <input type=hidden name=chanl value=sub2>
      <input type=hidden name=sel value=$sel>
      <input type=submit value=확인>
      </form>
      </center>
      </body>
      </html>
      ");
      /* 모든 상품의 주문 입력을 하고 주문 현황 화면으로 링크하는 "확인" 버튼을 생성 합니다.*/
    }

주문 현황 만들기

그림. 15-5 상품 주문 현황 화면
    if($chanl == sub2)
    {
    /* chanl이 sub2일 경우 실행 합니다. */


      $ally=mysql_query("select * from sub where user='$username' ",$connect);
      /* 해당 구매자가 주문한 상품 정보를 sub 테이블에서 검색 합니다. */


      mysql_select_db('selectuser',$connect);
      /* 해당 구매자가 사용한 ID 세션의 정보를 검색하기 위해 selectuser 데이터 베이스를 선택 합니다. */


      $ally2=mysql_query("select resident,tel1,id from userin
      where id='$username' ",$connect);
      /* 해당 ID 세션을 가진 구매자의 정보를 검색 합니다. */


      $put=mysql_fetch_array($ally2);
      /* 해당 ID 세션의 정보를 $put 변수에 저장 합니다. */


      $t_num2=mysql_num_rows($ally);
      /* 해당 구매자가 신청한 상품의 수량을 $t_num2 변수에 저장 합니다.*/


      if(!$t_num2)
      {
        echo("
        <script>
        window.alert('주문한 상품이 없습니다.')
        history.go(-1)
        </script>
        ");
        exit;
      }
      /* 해당 구매자가 신청한 상품이 없을 경우 출력하는 화면 입니다. */


      echo("
      <html>
      <title>
      sub html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>


      <table border=0 cellspacing=2 cellpadding=2 width=600>
      <tr>


      <td bgcolor=white colspan=5 align=center colspan=2>
      <font style='font-size:13px;font-style:italic;color:black'>
      <b> 계산서~</b></font></td>
      </tr>
      <tr>


      <td bgcolor=#808080 align=center width=200>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~품명</b></font></td>


      <td bgcolor=#808080 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~수량</b></font></td>


      <td bgcolor=#808080 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~단가</b></font></td>


      <td bgcolor=#808080 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~희망 도착일</b></font></td>
      </tr>
      ");


      for($pd=$t_num2 ; $pd >= 1 ; $pd--)
      {
      /* 해당 구매자가 신청한 상품의 수량 만큼 루프를 반복 합니다. */


        $put2=mysql_fetch_array($ally);
        /* 해당 구매자가 신청한 상품의 정보를 $put2 변수에 저장 합니다. */


        $total = $total+($put2[bprice] * $put2[num]);
        /* 주문한 상품의 총 가격을 구합니다. */


        echo("
        <tr>
        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[pduct]</b></font></td>
        /* 주문한 상품 이름을 출력 합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[num]ea</b></font></td>
        /* 주문한 상품의 수량을 출력 합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[bprice]원</b></font></td>
        /* 주문한 상품의 기본 단가를 출력 합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[wdate]</b></font></td>
        </tr>
        /* 주문한 상품의 희망 도착 날짜를 출력 합니다. */
        ");
      }


      echo("
      </table>
      <table border=0 cellspacing=2 cellpadding=2 width=600>
      <tr>


      <td bgcolor=#808080>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~받을주소</b></font></td>


      <td bgcolor=black align=left>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put2[address]</font></td>
      /* 주문한 상품을 받을 주소를 출력 합니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Name</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put2[name]</font></td>
      /* 상품을 주문한 구매자 이름을 출력 합니다. */


      </tr>
      <tr>
      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Id</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[id]</font></td>
      /* 상품을 주문한 구매자의 ID를 출력 합니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~주민번호</b></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[resident]</font></td>
      /* 상품을 주문한 구매자의 주민 번호를 출력 합니다. */


      </tr>
      <tr>


      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~입금은행</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put2[inmoney] 예금주:cry 444-44-44-444</font></td>
      /* 상품의 대금 결제를 위한 은행을 출력 합니다. */


      </tr>
      <tr>

      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Tel</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $put[tel1]</font></td>
      /* 상품을 신청한 구매자의 전화번호를 출력 합니다. */


      </tr>
      <tr>
      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~총금액</b></font></td>


      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:red'>
      <b>$total</b>원</font></td>
      </tr>
      /* 구매자가 신청한 상품의 총 금액을 출력 합니다. */


      </table>
      <br>
      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <td bgcolor=black align=center width=200>
      <a href =shop.php?user=$username&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>쇼핑 계속하기</b></font></a></td>
      /* 해당 종목의 쇼핑 메인 화면으로 링크 합니다. */
      <td bgcolor=black align=center width=200>
      <a href =shop.php?chanl=item_show&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>바구니</b></font></a></td>


      <td bgcolor=black align=center width=200>
      <a href =shop.php?chanl=del&sel=$sel>
      <font style='font-size:13px;font-style:italic;color:#ffd700'>
      <b>주문취소</b></font></a></td>
      /* 주문한 상품의 주문 취소 화면으로 링크 합니다. */


      </tr>
      </table>
      </center>
      </body>
      </html>
      ");
    }

다음 이전 차례