다음 이전 차례

14. 경매 게시판 만들기

여기서 구현할 경매 게시판은 어떤 물건이든 자유롭게 경매를 등록할 수 있고 경매 등록자 중심으로 경매가 진행됩니다.    등록자는 경매의 진행 여부를 수정할 수 있으며 삭제까지 할 수 있습니다.    다만 입찰자의 삭제는 해당 경매를 삭제 해야지만 모두 삭제됩니다.    경매 입찰은 기본 경매 가격보다 커야하며 한번만 입찰이 가능합니다.    경매가 종료될 경우 매도자와 낙찰자에게 메일을 전송하며 마감을 게시판에 표시합니다.

그림. 14-1 경매 게시판 메인 화면

14.1 경매 테이블 만들기

경매 게시판의 테이블 역시 두개로 이루어집니다.    게시판의 주요 화면의 정보를 저장하는 테이블과 입찰자의 정보를 저장하는 테이블입니다.    여기서 만들 테이블 역시 만드는 과정만 익히기 바랍니다.    Admin 영역에서 게시판 테이블을 생성하는 방법이 있으므로 이것을 이용해서 테이블을 만들어야 합니다.    수작업으로 테이블 이름을 정하고 만들 경우는 단지 경매 게시판만을 만들 경우에 사용합니다.    즉, 경매스크립트의 경매 테이블 이름을 지금 만든 테이블 이름으로 모두 수정해서 사용해야 합니다.    사이트의 기본 구성을 다중 게시판 모드로 했기 때문에 admin 영역에서 게시판을 생성해야 합니다.    물론 경매 스크립트를 실행하기 위해서 경매 테이블 이름을 링크로 전달하는 방법을 사용할 수도 있습니다.

데이터베이스 만들기

    mysql>create databases libchal ;

 
    위 libchal 데이터베이스는 자료실 데이터베이스와 같습니다.
    만약 경매 게시판과 자료실 게시판 중 하나만 사용하더라도 libchal 데이터베이스는 만들어야 합니다.
    자료실 게시판에서 데이터베이스를 만들었다면 다시 만들지 않아도 됩니다.

테이블 만들기

    ./mysql -u root -p libchal < libchaltest.sql 

    CD의 libchaltest.sql 파일을 이용해서 한번에 경매 게시판 두개의 테이블을 생성합니다.
    물론 각 테이블의 속성을 변경할 경우 이 파일을 수정해서 사용하면 됩니다.
    그리고, 여기서 생성하는 테이블은 사이트 메인 화면에 나타나지 않습니다.
    오직 admin 영역에서 만든 테이블만 사이트 메인 화면에 나타납니다. 
    만약 여기서 테이블을 생성한 후 이 테이블을 이용해서 경매 스크립트를 테스트하려면 아래와 같은 링크로
    사용해야 합니다.


        <a href ='main_view.php?chanl=main_view&f=경매 메인 테이블명

        &f2=경매 입찰자 테이블 명&ssid=$username' >

 
    이것은 자료실의 경우도 마찬가지입니다.

그림. 14-2 libchaltest.sql

테이블 구성 인자들

    경매 테이블의 경우도 두개의 테이블로 구성되어 있으며 스크립트 역시 두개로 이루어져 있습니다. 
    각각의 구성인자는 경매 메인 테이블의 경우 경매 등록자의 정보를 저장하고 입찰 테이블의 경우 해당 경매
    입찰자의 정보를 저장합니다.

경매 메인 테이블

    경매 등록자의 정보를 저장합니다.

    no - 경매의 고유 번호를 저장합니다.
    name - 경매 등록자 이름을 저장합니다.
    email - 경매 등록자 메일 주소를 저장합니다.
    tel - 경매 등록자의 전화번호를 저장합니다.
    title - 경매 제목을 저장합니다.
    content - 경매의 내용을 저장합니다.
    edate - 경매의 마감 날짜를 저장합니다.
    smoney - 경매의 기본 금액을 저장합니다.
    wdate - 경매 등록 날짜를 저장합니다.
    sise - 해당 경매의 입찰 회수를 저장합니다.
    hit - 경매 조회 수를 저장합니다.

    no의 경우 자동 증가합니다.

입찰자 테이블

    입찰자 정보를 저장하는 항목입니다.

    no - 입찰자의 고유 번호를 저장합니다.
    name - 입찰자의 이름을 저장합니다.
    email - 입찰자의 메일 주소를 저장합니다.
    tel - 입찰자의 전화 번호를 저장합니다.
    bmoney - 입찰자의 입찰 금액을 저장합니다.
    tnum - 해당 경매의 고유 번호를 저장합니다.
        
    no의 경우 자동 증가합니다.   

14.2 경매 게시판 소스 만들기

경매 게시판의 소스 역시 총 두개로 이루어집니다.    각 화면을 표현하는 함수로 구성되는 파일(func_all.php)과 함수의 다양한 화면 출력을 위한 루틴이 있는 파일로(main_view.php)로 구성됩니다.

func_all.php 전체 코드

    <?php

    //////////////////////////////////////////////////
    //
    //    일자 : 2000.2.15 am 5
    //   작성자: skycry (hong il)
    //
    //
    //   method : 경매 게시판 functions
    //
    //////////////////////////////////////////////////
    ?>

    <?php

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


    if($findtype == name)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where name like '%$findname%' order by no ",$connect);
    }


    if($findtype == title)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where title like '%$findname%' order by no ",$connect);
    }


    if($findtype == content)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where content like '%$findname%' order by no ",$connect);
    }


    if($findtype == t_c)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where title like '%$findname%' or content like '%$findname%' order by no ",$connect);
        }


    if(!$findtype)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      order by no ",$connect);//$connection 생략 했음
    }


    $ally4 = mysql_query("select hit,sise from $f where no='$no'",$connect );
    $ally3 = mysql_query("select tnum,no,bmoney,name,tel,email from $f2
    where tnum ='$no' order by bmoney desc",$connect );
    $ally2 = mysql_query("select smoney,title,edate,content,wdate,name,email,tel
    from $f where no='$no'",$connect );
    $allylib = mysql_query("select tnum,no,name from $f2 where tnum ='$no'
    order by bmoney desc",$connect );

          
    $t_num=mysql_num_rows($ally);
    $putup = mysql_fetch_array($ally4);
    $putup2 = mysql_fetch_array($allylib);
    $putally2=mysql_fetch_array($ally2);

          
    mysql_select_db('selectuser',$connect);
    $allyuser = mysql_query("select id,name,tel1,email,passwd from userin
    where id='$username' ",$connect);
    $putuser = mysql_fetch_array($allyuser);

    ?>



    <?php

    function main_view($s_mail,$t_num,$ally,$page,$findtype,$findname,$f,$f2,$root,$username)
    {

      $p_dip = 4 ;
      $p_page =4  ;
      $p_pagex = ceil($p_page / 2) ;
      $t_page = ceil($t_num / $p_dip) ;


      if(!$page)
      {
        $page = 1;
      }


      if( $page <= $p_pagex )
      {
        $p_start = $p_pagex + 1 ;
      }
      else
      {
        $p_start = $page + 1;
      }


      $pt_page = ceil($p_start - $p_pagex) ;
      $next_p = $page + 1 ;
      $pre_p = $page - 1 ;
      $start_num = ($t_num - ($page * $p_dip))+($p_dip-1) ;


      if(!$root)
      {
        $admin = "User " ;
      }
      else
      {
        $admin = "Admin 입니다.";
      }


      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=700 >
      <tr>
      <th bgcolor=white colspan=7 align=left>
      <font style='font-size:12px;font-style:italic;color:#blue'>
      <b>$t_page / $page : $admin </b></font></th>
      </tr>


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


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


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


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


      <td bgcolor=#808080 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>Cnt</b></font></td>
      <td bgcolor=#808080 width=50 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>현재</b></font></td>
      <td bgcolor=#808080 width=125 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>마감</b></font></td>
      </tr>
      ");


      if(!$t_num)
      {
        echo ("
        <tr>
        <th bgcolor=black colspan=6><font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>등록된 글이 엄스요...  ^^;</b></font></th>
        </tr>
        </center>
        </table>
        </html>
        ");
      }
      else
      {
        for($pd=$start_num ; $pd > $start_num-$p_dip ; $pd--)
        {

          if($pd >= 0 )
          {
            mysql_data_seek($ally,$pd);
            $put=mysql_fetch_array($ally);
            $wdate = date('Y-m-d H:i:s');
            $title_link1 = "<a href ='main_view.php?chanl=title&no=$put[no]&f=$f&f2=$f2'>";
            $title_link2 = "<a href ='main_view.php?chanl=title_end&no=$put[no]&f=$f&f2=$f2'>";


            if($put[edate] > $wdate)
            {
              $h = "진행중";
              $title_link = $title_link1;
            }

            if($put[edate] < $wdate)
            {
              $h = "마감";
              $title_link = $title_link2;
              $s_mail;
            }


            echo("
            <tr>
            <td bgcolor=black>
            <font style='font-size:13px;font-style:italic;color:white'>
            $put[no]</font></td>
            <td bgcolor=black>
            $title_link
            <font style='font-size:13px;font-style:italic;color:white'>
            <b>$put[title]</b></font></a></td>


            <td bgcolor=black align=center>
            <a href = mailto:$put[email] >
            <font style='font-size:13px;font-style:italic;color:white'>
            <b>$put[name]</b></font></a></td>


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


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


            <td bgcolor=black align=center>
            <font style='font-size:13px;font-style:italic;color:#008000'>
            <b>$h</b></font></td>


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


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


        if($page == 1)
        {
          echo ("
          <font style='font-size:12px;font-style:italic;color:#fffff0'>first </font> ");
        }
        else
        {
          echo ("
          <a href =main_view.php?chanl=main_view&page=$pre_p&f=$f&f2=$f2>
          <font style='font-size:12px;font-style:italic;color:#fffff0'><< </font></a>");
        }


        for($pp=$pt_page ; $pp < $p_page+$pt_page ; $pp++)
        {
          if($pp == $page )
          {
            echo ("
            <font style='font-size:13px;font-style:italic;color:red'>
            $pp</font>
            ");
          }
          else
          {
            if($pp > 0  && $pp <= $t_page)
            {
              echo("
              <a href =main_view.php?chanl=main_view&page=$pp&f=$f&f2=$f2>
              <font style='font-size:12px;font-style:italic;color:#808080'>[$pp]</font></a>");
            }
          }
        }


        if($page == $t_page)
        {
          echo ("
          <font style='font-size:12px;font-style:italic;color:#fffff0'> last^^ </font>");
        }
        else
        {

                
        echo ("
        <a href =main_view.php?chanl=main_view&page=$next_p&f=$f&f2=$f2>
        <font style='font-size:12px;font-style:italic;color:#fffff0'>pre>></font></a>");
      }
      }


      echo("
      </td>
      </tr>
      </center>
      </table>
      <br>
      <center>
      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <tr>
      <td bgcolor=black width=100>
      <a href =main_view.php?chanl=new_libchal&f=$f&f2=$f2>
      <img src=write.gif border=0>
      </a></td>
 

      <td bgcolor=black width=100>
      <a href =userin.php?chanl=main_view&username=$username>
      <img src=home.gif border=0>
      </a></td>
 

      <td bgcolor=black width=100>
      <a href =db_view.php?chanl=rootin>
      <img src=admin.gif border=0></a></td>
 

      <td bgcolor=black align=right width=150>
      <form method=post action=main_view.php>
      <input type=hidden name=chanl size=14 value=main_view>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>
      <select name=findtype>
      <option value=name selected>Name
      <option value=title>Title
      <option value=content>Content
      <option value=t_c>Titl+Cont
      </select>
      </font></td>
      <td bgcolor=black width=150>
      <input type=text name=findname size=14>
      </td>


      <td bgcolor=black width=100>
      <input type=submit value=Find>
      </td>
      </tr>
      </table>
      </center>
      </html>
      ");

    }


    function edit_libchal($putally2,$no,$f,$f2,$putuser)
    {

      echo("
      <html>
      <title>
      input_view html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <form method=post action=main_view.php>
      <input type=hidden name=chanl value=edit_libchal_in>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>
      <input type=hidden name=no value=$no>

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

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


      <td bgcolor=black align=left>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=text name=title size=50 value='$putally2[title]'></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'>
      $putally2[name]</font></td>
      </tr>


      <tr>
      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Passwd</b></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#ff1493'>
      <input type=password name=passwd size=9></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'>
      $putally2[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'>
      $putally2[tel]</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
        </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>


      <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:#ff1493'>
      <input type=int name=smoney size=10 value='$putally2[smoney]'>
      <b>Won</b></font></td>
      </tr>


      <tr>
      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Content</b></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <textarea name=content rows=10 cols=70 >
      $putally2[content]</textarea></font></td>
      </tr>


      <tr>
      <td bgcolor=black align=center colspan=4>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=submit value=수정하기>
      </font></td>
      </tr>
      </table>
      </form>
      </center>
      </body>
      </html>
      ");

    }


    function view_title($putally2,$ally3,$no,$f,$f2,$putuser)
    {

      $content=nl2br($putally2[content]) ;


      echo("
      <html>
      <title>
      view_title html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <tr>
      <td bgcolor=white align=center width=120>
      <font style='font-size:13px;font-style:italic;color:#blue'><b>$no No</b></font></td>


      <td bgcolor=white align=center width=580>
      <font style='font-size:13px;font-style:italic;color:#black'>
      <b>$putally2[title]</b></font></td>
      </tr>
      </table>
      
      <table border=0 cellspacing=2 cellpadding=2 width=700 >

      <tr>
      <td bgcolor=#808080 align=center width=100>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>$putally2[edate]:마감</b></font></td>


      <td bgcolor=#808080 align=center width=200>
      <a href = mailto:$putally2[email] >
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>name:$putally2[name]</b></font></a></td>
      <td bgcolor=#808080 align=center width=280>
      <font style='font-size:13px;font-style:italic;color:red'>
      <b>기본money:$putally2[smoney]</b></font></td>
      </tr>


      <tr>
      <table border=0 cellspacing=2 cellpadding=2 width=700 height=250>
      <td bgcolor=black valign=top colspan=3 width=700 height=250>
      <font style='font-size:13px;font-style:italic;color:blue'><b>$content</b></font></td>
      </tr>
      </table>
      
      <table border=0  width=700 >

      <tr>
      <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>Name</b></font></td>
      

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


      <td bgcolor=#808080 align=center>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>Money</b></font></td>
      </tr>
      ");


      for($a=1 ; $a < 5 ; $a++)
      {

        $put2=mysql_fetch_array($ally3);


        if($put[smoney]<$put2[bmoney])
        {
          echo("
          <tr>
          <td bgcolor=black align=center width=150>
          <font style='font-size:13px;font-style:italic;color:#fffff0'><b>$a</b></td>
          <td bgcolor=black align=center width=150>
          <a href = mailto:$put2[email] >
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[name]</b></font></a></td>


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


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


      echo("
      </table>
      <table border=0  width=700 >

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

      <tr>
      <td bgcolor=black >
      <a href =main_view.php?chanl=input_newlibchal&tnum=$no&f=$f&f2=$f2>
      <img src=write.gif border=0></a></td>


      <td bgcolor=black ><a href =main_view.php?chanl=main_view&f=$f&f2=$f2>
      <img src=list.gif border=0></a></td>
      <td bgcolor=black ><a href =main_view.php?chanl=edit_libchal&no=$no&f=$f&f2=$f2>
      <img src=rewrite.gif border=0></a></td>


      <td bgcolor=black ><a href =main_view.php?chanl=del&no=$no&f=$f&f2=$f2>
      <img src=delete1.gif border=0></a></td>
      <td bgcolor=black ><a href =main_view.php?chanl=del_lib&no=$no&f=$f&f2=$f2>
      <img src=delete2.gif border=0></a></td>


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

    }


    function error_view($title,$smoney,$edate,$content,$f,$f2)
    {

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

        exit;
      }


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

        exit;
      }

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

      exit;
      }


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

        exit;
      }
    }


    function input_newlibchal($tnum,$f,$f2,$putuser)
    {

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


      <form method=post action=main_view.php>
      <input type=hidden name=chanl value=input_newlibchal>
      <input type=hidden name=chanl2 value=input_newlibchal2>
      <input type=hidden name=tnum value=$tnum>
      <input type=hidden name=no value=$tnum>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>
      <table border=0 cellspacing=2 cellpadding=2  width=700 >
      </table>

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

      <tr>
      <td width=50 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'>
      $putuser[name]</font></td>


      <td width=100 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'>
      $putuser[email]</font></td>
      </tr>

      <tr>
      <td width=100 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'>
      $putuser[tel1]</font></td>
      <td width=100 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'>
      <input type=text name=bmoney size=10>won</font></td>
      </tr>
      </table>
      <br><br>
      <table border=0 cellspacing=2 cellpadding=2  width=71% >
      <tr>
      <td bgcolor=black align=center colspan=4>
      <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>
      ");
    }


    function input_view($f,$f2,$connect,$putuser)
    {

      echo("
      <html>
      <title>
      input_view html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <form method=post action=main_view.php>
      <input type=hidden name=chanl value=input_new>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>

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

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


      <td bgcolor=black align=left><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=text name=title 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'>
      $putuser[name]</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'>
      $putuser[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'>
      $putuser[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>


      <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:#ff1493'>
      <input type=int name=smoney size=10><b>Won</b></font></td>
      </tr>


      <tr>
      <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Content</b></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <textarea name=content rows=10 cols=70></textarea></font></td>
      </tr>


      <tr>
      <td bgcolor=black align=center colspan=4>
      <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>
      ");
    }


    function del($no,$tnum,$f,$f2,$root,$putuser)
    {

      echo("
      <html>
      <title>
      Del html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <form method=post action=main_view.php>
      <input type=hidden name=chanl value=del_no>
      <input type=hidden name=tnum value=$no>
      <input type=hidden name=no value=$no>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>

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


      <tr>
      <td bgcolor=#808080 width=74>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~passw</b></font></td>
      <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=password name=passwd size=10></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=submit value=지우기>
      </font></td>
      </tr>


      <tr>
      <td bgcolor=#808080 width=74>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Name</b></font></td>
      <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $putuser[name]</font></td>
      </tr>
      </table>
      </form>
      </center>
      </body>
      </html>
      ");
    }


    function del_lib($no,$tnum,$f,$f2,$root,$putuser)
    {

      echo("
      <html>
      <title>
      Del_lib html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <form method=post action=main_view.php>
      <input type=hidden name=chanl value=del_lib2>
      <input type=hidden name=tnum value=$no>
      <input type=hidden name=no value=$no>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>

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


      <tr>
      <td bgcolor=#808080 width=74>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~Name</b></font></td>
      <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
      $putuser[name]</font></td>
      </tr>


      <tr>
      <td bgcolor=#808080 width=74>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>~passw</b></font></td>
      <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=password name=passwd size=9></font></td>
      <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
      <input type=submit value=지우기>
      </font></td>
      </tr>
      </table>
      </form>
      </center>
      </body>
      </html>
      ");
    }


    function title_end($putally2,$ally3,$no,$f,$f2)
    {

      echo("
      <html>
      <title>
      end html
      </title>
      <body bgcolor=black>
      <center>
      <img src=skyt1.jpg border=0>
      <br>
      <table border=0 cellspacing=2 cellpadding=2 width=700 >
      <tr>
      <td bgcolor=white align=center width=120>
      <font style='font-size:13px;font-style:italic;color:#blue'><b>$no No</b></font></td>
      <td bgcolor=white align=center width=580>
      <font style='font-size:13px;font-style:italic;color:#black'>
      <b>$putally2[title]</b></font></td>
      </tr>
      </table>

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

      <tr>
      <td bgcolor=#808080 align=center width=135>
      <font style='font-size:13px;font-style:italic;color:#fffff0'><b>낙찰자</b></font></td>
      <td bgcolor=#808080 align=center width=250>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>마감시간</b></font></td>


      <td bgcolor=#808080 align=center width=250>
      <font style='font-size:13px;font-style:italic;color:#fffff0'><b>Tel</b></font></td>
      <td bgcolor=#808080 align=center width=150>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>낙찰Money</b></font></td>
      </tr>
      ");


      for($a=1 ; $a < 2 ; $a++)
      {

        $put2=mysql_fetch_array($ally3);


        if($putally2[smoney]<$put2[bmoney])
        {
          echo("
          <tr>
          <td bgcolor=black align=center><a href = mailto:$put2[email] >
          <font style='font-size:13px;font-style:italic;color:#fffff0'>
          <b>$put2[name]</b></font></a></td>


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


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


      echo("
      <tr>
      <td bgcolor=#808080 align=center width=135>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>매도자</b></font></td>
      <td bgcolor=#808080 align=center width=250>
      <font style='font-size:13px;font-style:italic;color:#fffff0'><b>매도일</b></font></td>


      <td bgcolor=#808080 align=center width=250>
      <font style='font-size:13px;font-style:italic;color:#fffff0'><b>Tel</b></font></td>
      <td bgcolor=#808080 align=center width=150>
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>기본Money</b></font></td>
      </tr>


      <tr>
      <td bgcolor=black align=center><a href = mailto:$putally2[email] >
      <font style='font-size:13px;font-style:italic;color:#fffff0'>
      <b>$putally2[name]</b></font></a></td>


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


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


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


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


      <tr>
      <td bgcolor=black colspan=4>
      <font style='font-size:15px;font-style:italic;color:#fffff0'>
      ''' 경매 게시자는 직접 삭제 해야 메일이 계속 발송 않됩니다.~! </font></td>
      </tr>


      <tr>
      <td bgcolor=black colspan=4>
      <font style='font-size:15px;font-style:italic;color:#fffff0'>
      ''' 계속 진행하려면 날짜를 변경 하세요.~! </font></td>
      </tr>


      <tr>
      <td bgcolor=black ><a href =main_view.php?chanl=main_view&f=$f&f2=$f2>
      <img src=list.gif border=0></a></td>
      <td bgcolor=black ><a href =main_view.php?chanl=edit_libchal&no=$no&f=$f&f2=$f2>
      <img src=rewrite.gif border=0></a></td>
      <td bgcolor=black ><a href =main_view.php?chanl=del&no=$no&f=$f&f2=$f2>
      <img src=delete2.gif border=0></a></td>
      </tr>
      </table>
      </center>
      </html>
      ");
    }


    function s_mail($putally2,$ally3,$no,$f,$f2)
    {

      for($a=1 ; $a < 2 ; $a++)
      {

        $put2=mysql_fetch_array($ally3);


        if($putally2[smoney]<$put2[bmoney])
        {
          $message = " <b>No</b> $no title : $putally2[title] <br>
          <b>낙찰자</b> $put2[name] <b>마감시간</b> $putally2[edate]
          <b>Tel</b> $put2[tel] <b>낙찰금액</b> $put2[bmoney] <br><br>
          <b>매도자</b> $putally2[name] <b>매도일</b> $putally2[wdate]
          <b>Tel</b> $putally2[tel] <b>기본금액</b> $putally2[smoney] <br><br>
          <b>공지</b></br>
          낙찰 매일 확인 후 경매 게시판의 경매 글을 직접 삭제하세요~!
          ";
        }
      }


      $su = " <b>No $no</b> 낙찰 ";
      $rp = "$put2[email]";
      $rp1 = "$putally2[email]";
      mail($rp , $su ,$message);
      mail($rp1 , $su ,$message);
    }

    ?>

소스 설명

    함수 형식으로 되어 있으며 경매의 새로운 기능을 추가할 수 있으며 각 화면 별로 함수는 분리되어 있습니다.

database 접속과 검색 모드 만들기

    소스의 처음 부분이며 mysql의 접속 query들이 나열됩니다.
    이것은 경매 글의 검색을 위한 데이터베이스 query도 있으며 경매 메인 화면을 출력하는 query도 있습니다.


    <?php

    $connect = mysql_connect('localhost','root','gksmf444');
    mysql_select_db('libchal',$connect);
    /* mysql 접속을 위한 호스트, 유저, 패스워드를 나열하고 데이터베이스를 선택 합니다.*/


    if($findtype == name)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where name like '%$findname%' order by no ",$connect);
    }

    /* $findtype이 name일 때 해당 테이블에서 경매 등록자를 검색합니다.
       자료실에서와 같은 루틴이며 $f는 경매 메 테이블을 전달받고, $f2는 입찰자 테이블 이름을 전달받습니다. */


    if($findtype == title)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where title like '%$findname%' order by no ",$connect);
    }
    /* $findtype가 title일 때 경매 메인 테이블에서 제목에 관해 검색합니다. */


    if($findtype == content)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where content like '%$findname%' order by no ",$connect);
    }
    /* $findtype이 content일 때 경매 메인 테이블에서 경매 내용에 관해서 검색합니다. */


    if($findtype == t_c)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      where title like '%$findname%' or content like '%$findname%' order by no ",$connect);
    }
    /* $findtype이 t_c일 때 경매 메인 테이블에서 경매 제목과 내용에서 전달 받은 검색 단어를 검색합니다. */


    if(!$findtype)
    {
      $ally = mysql_query("select no,sise,title,hit,edate,wdate,name,email from $f
      order by no ",$connect);//$connection 생략 했음
    }
      /* $findtype이 없을 경우 경매 메인 테이블에서 등록된 경매 글을 모두 query 합니다. */
   

    $ally4 = mysql_query("select hit,sise from $f where no='$no'",$connect );
    /* 특정 번호에 해당하는 경매 hit, sise를 검색합니다. */


    $ally3 = mysql_query("select tnum,no,bmoney,name,tel,email from $f2
    where tnum ='$no' order by bmoney desc",$connect );
    /* 특정 번호에 해당하는 입찰자의 정보를 검색합니다. */


    $ally2 = mysql_query("select smoney,title,edate,content,wdate,name,email,tel
    from $f where no='$no'",$connect );
    /* 특정 번호에 해당하는 경매의 정보를 검색합니다. */


    $allylib = mysql_query("select tnum,no,name from $f2 where tnum ='$no'
    order by bmoney desc",$connect );
    /* 특정 번호에 해당하는 입찰자 정보를 입찰 금액 역순으로 정렬합니다. */


    $t_num=mysql_num_rows($ally);
    /* 경매 메인 테이블에 등록된 경매 수를 해당 변수에 저장합니다. */


    $putup = mysql_fetch_array($ally4);
    /* 특정 번호에 해당하는 경매 시세와 조회 수를 해당 변수에 저장합니다. */


    $putup2 = mysql_fetch_array($allylib);
    /* 특정 경매 입찰자의 정보 해당 변수에 배열로 저장합니다. */


    $putally2=mysql_fetch_array($ally2);


    mysql_select_db('selectuser',$connect);
    /* 회원 정보 데이터베이스인 selectuser 데이터베이스를 선택합니다. 구지 회원 데이터베이스를 따로 만들지 안고 libchal
      데이터베이스에 회원 정보 테이블을 생성해서 사용하면 스크립트의 속도 향상이 있을 것입니다. */


    $allyuser = mysql_query("select id,name,tel1,email,passwd from userin
    where id='$username' ",$connect);
    /* 접속한 세션에 해당하는 ID를 이용해서 userin 테이블에서 해당 ID 정보를 검색합니다.*/


    $putuser = mysql_fetch_array($allyuser);
    /* 특정 회원의 정보를 배열로 저장합니다. */

    ?>

main_view( ) 함수

    경매 게시판의 메인 화면을 출력하는 함수입니다. 경매 게시판 메인 화면을 참고하세요.

함수인자

    main_view($s_mail,$t_num,$ally,$page,$findtype,$findname,$f,$f2,$root,$username);

    /* 경매 게시판의 메인 화면을 출력하기 위한 함수의 인자들 입니다. */


    $s_mail - 경매가 마감 되었을 경우 해당 경매의 내용을 전달합니다.
    $t_num - 총 경매 글의 수를 전달합니다.
    $ally - 경매 메인 테이블의 경매 정보를 전달합니다.
    $page - 경매 메인 화면의 페이지를 전달합니다.
    $findtype - 경매의 검색 조건을 전달합니다. 즉, 경매 제목, 등록자, 내용, 제목과 내용을 전달합니다.
    $findname - 경매에서 검색할 단어를 전달합니다.
    $f - 경매 게시판의 메인 테이블 이름을 전달합니다.
    $f2 - 경매 게시판의 입찰자 테이블 이름을 전달합니다.
    $root - admin 로그인 때 생성된 쿠키를 전달합니다.
    $username - 사이트 접속 때 사용한 ID 세션을 전달합니다.

경매 글 출력 하기

    등록한 경매 글을 페이별로 출력하며 경매의 진행과 마감을 알려 줍니다.


    for($pd=$start_num ; $pd > $start_num-$p_dip ; $pd--)
    {
    /* 페이지당 글과 페이지 링크, 시작 페이지 값을 이용해서 경매 글을 출력합니다. */


      if($pd >= 0 )
      {
        mysql_data_seek($ally,$pd);
        $put=mysql_fetch_array($ally);
        /* 경매 글을 순차적으로 배열로 저장해서 출력합니다. */
                
        $wdate = date('Y-m-d H:i:s');
        /* 현재 날짜와 시간을 저장합니다. 이것은 경매의 마감 날짜를 가려내기 위해 사용합니다. */
                
        $title_link1 = "<a href ='main_view.php?chanl=title&no=$put[no]&f=$f&f2=$f2'>";
        /* 해당 경매의 내용을 링크합니다. */
                
        $title_link2 = "<a href ='main_view.php?chanl=title_end&no=$put[no]&f=$f&f2=$f2'>";
        /* 해당 경매의 마감 항목을 링크합니다. */


        if($put[edate] > $wdate)
        {
          $h = "진행중";
          $title_link = $title_link1;
        }
        /* 경매 등록 때 설정한 마감 날짜가 현재 날짜보다 클 경우 경매 내용을 링크하고 "진행중" 변수를 설정합니다. */

                
        if($put[edate] < $wdate)
        {
          $h = "마감";
          $title_link = $title_link2;
          $s_mail;
        }
        /* 경매 마감 날짜가 현재 날짜 보다 작을 경우 경매 마감 화면을 링크하고, "마감" 변수를 설정하며 매도자와
           낙찰자" 메일을($s_mail) 발송합니다. */


        echo("
        <tr>
        <td bgcolor=black>
        <font style='font-size:13px;font-style:italic;color:white'>
        $put[no]</font></td>
        <td bgcolor=black>
        /* 경매의 고유 번호를 출력합니다. */
                
        $title_link
        <font style='font-size:13px;font-style:italic;color:white'>
        <b>$put[title]</b></font></a></td>
        /* 경매 제목을 출력합니다. */
                
        <td bgcolor=black align=center>
        <a href = mailto:$put[email] >
        <font style='font-size:13px;font-style:italic;color:white'>
        <b>$put[name]</b></font></a></td>
        /* 경매 등록자 이름과 메일 주소를 링크합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#ff1493'>
        <b>$put[sise]</b></font></td>
        /* 해당 경매의 입찰자 수를 출력합니다. */
                
        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put[hit]</b></font></td>
        /* 해당 경매의 조회 수를 출력합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#008000'>
        <b>$h</b></font></td>
        /* 해당 경매의 진행 여부를 출력합니다. 이 부분은 입찰 가능 금액을 표시하는 방법도 있습니다. */
        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#9400d3'>
        <b>$put[edate]</b></font></td>
        /* 해당 경매의 마감 날짜를 출력합니다. */
        </tr>
        ");
      }
    }

다른 화면 링크 만들기

    경매 게시판 마지막 부분에 경매 글 등록과 홈, admin " 링크를 만드는 부분입니다.


    echo("
    </td>
    </tr>
    </center>
    </table>
    <br>
    <center>
    <table border=0 cellspacing=2 cellpadding=2 width=700 >
    <tr>
    <td bgcolor=black width=100>
    <a href =main_view.php?chanl=new_libchal&f=$f&f2=$f2>
    <img src=write.gif border=0>
    </a></td>
    /* 새로운 경매 글을 등록하는 화면을 이미지로 링크합니다. */

    <td bgcolor=black width=100>
    <a href =userin.php?chanl=main_view&username=$username>
    <img src=home.gif border=0>
    </a></td>
    /* 사이트 메인 페이지 이동 링크를 만듭니다. */


    <td bgcolor=black width=100>
    <a href =db_view.php?chanl=rootin>
    <img src=admin.gif border=0></a></td>
    /* admin 영역 로그인 화면 링크를 만듭니다. */
        
    <td bgcolor=black align=right width=150>
    <form method=post action=main_view.php>
    <input type=hidden name=chanl size=14 value=main_view>
    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    <select name=findtype>
    <option value=name selected>Name
    <option value=title>Title
    <option value=content>Content
    <option value=t_c>Titl+Cont
    </select>
    /* form의 select문을 이용해서 검색 모드를 만듭니다. 검색 항목은 $findtype로 전달합니다. */
        
    </font></td>
    <td bgcolor=black width=150>
    <input type=text name=findname size=14>
    /* 검색할 단어를 $findname 변수로 전달합니다. */
    </td>


    <td bgcolor=black width=100>
    <input type=submit value=Find>
    /* 검색 항목($findtype)과 검색 단어($findname)을 전달하기 위해 submit 버튼을 생성합니다. */
        
    </td>
    </tr>
    </table>
    </center>
    </html>
    ");

edit_libchal($putally2,$no,$f,$f2,$putuser) 함수

    등록된 경매 글의 내용을 수정합니다.

    $putally2 - 특정 경매의 정보를 배열로 저장해서 전달합니다.
    $no - 특정 경매의 번호를 전달합니다.
    $putuser - 특정 ID의 정보를 배열로 저장해서 전달합니다.

그림.14 -3 경매 수정 화면

form문 만들기

    해당 경매의 수정 항목을 데이터베이스에 저장하기 위해 인자를 전달하는 form문을 만듭니다. 


    <form method=post action=main_view.php>
    <input type=hidden name=chanl value=edit_libchal_in>
    /* main_view.php 파일의 $chanl=edit_libchal_in 항목을 실행합니다. */


    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    /* 해당 경매의 메인 테이블 이름과 입찰자 테이블 이름을 전달합니다. */


    <input type=hidden name=no value=$no>
    /* 해당 경매의 고유 번호를 전달 합니다. */

view_title($putally2,$ally3,$no,$f,$f2,$putuser) 함수

    특정 경매 글을 클릭하면 보여주는 항목입니다.
    여기에는 경매의 세부적인 내용과 입찰자 순위, 경매 삭제, 입찰 등의 기능이 있습니다.

    $putally2 - 특정 경매의 정보를 배열로 저장해서 전달합니다.
    $ally3 - 특정 경매의 입찰자 정보(입찰금액을 내림차순으로 정렬)를 배열로 저장해서 전달 합니다.
    $no - 특정 경매의 고유 번호를 전달합니다.
        
    이후 변수는 앞의 함수와 동일합니다.

그림. 14-4 경매 세부 정보 보기

선택한 경매 글 정보 보여주기

    경매의 세부 정보 화면에서 해당 경매에 대한 세부적인 정보를 보여 주기 위해 만듭니다.


    $content=nl2br($putally2[content]) ;
    /* 해당 경매의 설명 부분에서 nl 부분을 <br>로 변환해서 $content 변수에 저장합니다.*/


    <tr>
    <td bgcolor=#808080 align=center width=100>
    <font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>$putally2[edate]:마감</b></font></td>
    /* 해당 경매의 마감 시간을 출력합니다. */


    <td bgcolor=#808080 align=center width=200><a href = mailto:$putally2[email] >
    <font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>name:$putally2[name]</b></font></a></td>
    /* 해당 경매의 등록자를 출력하고 메일 주소를 링크합니다. */


    <td bgcolor=#808080 align=center width=280>
    <font style='font-size:13px;font-style:italic;color:red'>
    <b>기본money:$putally2[smoney]</b></font></td>
    /* 해당 경매의 기본 금액을 출력합니다. */
        
    </tr>
    <tr>
    <table border=0 cellspacing=2 cellpadding=2 width=700 height=250>
    <td bgcolor=black valign=top colspan=3 width=700 height=250>
    <font style='font-size:13px;font-style:italic;color:blue'><b>$content</b></font></td>
    /* 해당 경매의 설명을 출력합니다. */
    </tr>

입찰자 순위 보여주기

    경매 세부 화면 하단에 해당 경매에 입찰한 입찰자의 순위를 보여 줍니다.


    for($a=1 ; $a < 5 ; $a++)
    {
      $put2=mysql_fetch_array($ally3);
      /* 해당 경매 입찰자의 정보를 배열로 저장합니다.*/


      if($put[smoney]<$put2[bmoney])
      {
      /* 해당 경매의 기본 금액이 입찰 금액보다 작을 때 실행합니다.*/

        echo("
        <tr>
        <td bgcolor=black align=center width=150>
        <font style='font-size:13px;font-style:italic;color:#fffff0'><b>$a</b></td>
        /* for문에 의해 $a는 차례로 5보다 작을 때까지 숫자를 출력합니다. */


        <td bgcolor=black align=center width=150><a href = mailto:$put2[email] >
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[name]</b></font></a></td>
        /* 입찰자의 이름을 출력하고 메일 주소를 링크합니다. */


        <td bgcolor=black align=center width=200>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[tel]</b></font></td>
        /* 입찰자의 전화 번호를 출력합니다. */


        <td bgcolor=black align=center ><font style='font-size:13px;font-style:italic;color:red'>
        <b>$put2[bmoney]</b></font></td>
        /* 입찰자의 입찰금액을 출력합니다.
           이 부분은 입찰 금액이 제일 높은 사람의 "賻 출력하고 입찰자의 이름은 화면에 출력하지 않는 방법도
           있지만 여기서는 입찰자의 정보를 모두 공개 했습니다. */
        </tr>
        ");
      }
    }

다른 화면 링크 버튼 만들기

    경매 세부 항목에서 입찰, 경매 메인 화면, 경매 수정하기, 경매 지우기, 입찰 삭제로 이동하는 버튼을
    만듭니다.   각 버튼은 앞에 나열한 순으로 정렬되어 있습니다.


    <tr>
    <td bgcolor=black >
    <a href =main_view.php?chanl=input_newlibchal&tnum=$no&f=$f&f2=$f2>
    <img src=write.gif border=0></a></td>
    /* 해당 경매 입찰 화면으로 링크 합니다. */


    <td bgcolor=black ><a href =main_view.php?chanl=main_view&f=$f&f2=$f2>
    <img src=list.gif border=0></a></td>
    /* 경매 메인 화면으로 링크 합니다. */
    <td bgcolor=black ><a href =main_view.php?chanl=edit_libchal&no=$no&f=$f&f2=$f2>
    <img src=rewrite.gif border=0></a></td>
    /* 해당 경매 수정 화면으로 링크 합니다. */


    <td bgcolor=black ><a href =main_view.php?chanl=del&no=$no&f=$f&f2=$f2>
    <img src=delete1.gif border=0></a></td>
    /* 해당 경매 지우기 화면으로 링크 합니다. */


    <td bgcolor=black ><a href =main_view.php?chanl=del_lib&no=$no&f=$f&f2=$f2>
    <img src=delete2.gif border=0></a></td>
    </tr>
    /* 해당 경매 입찰 삭제 화면으로 링크 합니다. */

input_newlibchal($tnum,$f,$f2,$putuser) 함수

    해당 경매에 입찰을 하는 화면입니다.
        
    $putuser 변수의 정보를 이용해서 입찰자의 정보를 보여 주며 입찰 금액 부분만 입력하면 됩니다.
    $tnum - 해당 경매의 고유 번호를 전달합니다.

그림. 14-5 입찰 화면

form문 만들기

    입찰 화면에서 입찰 금액을 전달하고 나머지 테이블 정보를 전달합니다.


    <form method=post action=main_view.php>
    <input type=hidden name=chanl value=input_newlibchal>
    <input type=hidden name=chanl2 value=input_newlibchal2>
    /* main_view.php 파일의 $chanl= input_newlibchal , $chanl2= input_newlibchal2인 항목을 실행합니다. */
    <input type=hidden name=tnum value=$tnum>
    /* 해당 경매의 고유 번호를 입찰 번호 변수로($tnum) 전달합니다. */
    <input type=hidden name=no value=$tnum>
    /* 해당 경매의 고유 번호를 전달합니다. */


    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    /* 경매의 메인 테이블 이름과 입찰자 테이블 이름을 전달합니다. */

입찰자 정보와 입찰 금액 입력란 만들기

    로그인한 ID 세션을 이용해서 입찰자의 정보를 출력하고 입찰 금액 입력란을 만듭니다.


    <tr>
    <td width=50 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'>
    $putuser[name]</font></td>
    /* 입찰자의 이름을 출력합니다. */


    <td width=100 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'>
    $putuser[email]</font></td>
    </tr>
    /* 입찰자의 메일 주소를 출력합니다. */
    <tr>
    <td width=100 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'>
    $putuser[tel1]</font></td>
    /* 입찰자의 전화 번호를 출력합니다. */


    <td width=100 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'>
    <input type=text name=bmoney size=10>won</font></td>
    </tr>
    /* 입찰자의 입찰 금액 입력란을 만듭니다. */

input_view($f,$f2,$connect,$putuser) 함수

    새로운 경매를 등록하는 화면입니다. 함수의 전달 인자는 앞의 함수들과 같습니다.

그림. 14-6 경매 등록 화면

form문 만들기

    경매의 입력 항목들을 전달하기 위해 form문을 사용합니다.


    <form method=post action=main_view.php>
    <input type=hidden name=chanl value=input_new>
    /* main_view.php 파일의 $chanl=input_new인 항목을 실행합니다. */


    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    /* 해당 경매의 메인 테이블 이름과 입찰자 테이블 이름을 전달합니다. */

ID 정보 출력과 입력 항목 만들기

    사이트 접속 때 사용한 ID의 세션을 이용해서 경매 등록자의 정보를 출력하게 하고 나머지 경매 입력란을 만듭니다.


    <table border=0 cellspacing=2 cellpadding=2 width=700 >
    <tr>
    <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~Title</b></font></td>


    <td bgcolor=black align=left><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=text name=title size=44> </font></td>
    </tr>
    /* 경매의 제목을 입력하는 항목입니다. $title로 전달합니다. */


    <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'>
    $putuser[name]</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'>
    $putuser[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'>
    $putuser[tel1]</font></td>
    </tr>
    /* 경매 등록자의 전화번호를 화면에 출력합니다.  마감시간 입력의 경우 select문을 나열하는 방법을 사용했습니다. */


    <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:#ff1493'>
    <input type=int name=smoney size=10><b>Won</b></font></td>
    </tr>
    /* 경매의 기본 금액을 입력하는 항목입니다. $smoney로 전달합니다. */


    <tr>
    <td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~Content</b></font></td>
    <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <textarea name=content rows=10 cols=70></textarea></font></td>
    </tr>
    /* 경매의 세부적인 내용을 적는 항목입니다. $content로 전달합니다. */


    <tr>
    <td bgcolor=black align=center colspan=4>
    <font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=submit value=경매등록>
    <input type=reset  value=지우기></font></td>
    </tr>
    /* 입력 항목들을 전달하기 위한 "경매등록" 버튼을 생성하고, 새로이 입력하기 위한 "지우기" 버튼을 생성합니다. */

del($no,$tnum,$f,$f2,$root,$putuser) 함수

    등록한 경매를 지우기 위해 패스워드 입력 화면을 출력하는 함수입니다.

    $no - 해당 경매의 고유 번호를 전달합니다.
    $tnum - 경매 고유 번호에 입찰한 입찰 번호를 전달합니다.

그림. 14-7 경매 삭제 화면

form문 만들기

    해당 경매와 입찰자를 지우기 위해 여러 정보를 전달합니다.


    <form method=post action=main_view.php>
    <input type=hidden name=chanl value=del_no>
    /* main_view.php 파일의 $chanl= del_no인 항목을 실행합니다. */


    <input type=hidden name=tnum value=$no>
    /* 해당 경매 번호를 입찰자 번호에 사용합니다. 이것은 해당 경매에 입찰한 입찰자만을 삭제하기 위함입니다. */


    <input type=hidden name=no value=$no>
    /* 해당 경매 번호를 전달합니다. */


    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    /* 경매 메인 테이블 이름과 입찰자 테이블 이름을 전달합니다. */

패스워드 입력란 만들기

    <tr>
    <td bgcolor=#808080 width=74><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~passw</b></font></td>
    <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=password name=passwd size=10></font></td>
    /* 해당 경매 등록자의 패스워드 입력 항목입니다. Type는 password입니다. */


    <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=submit value=지우기>
    /* 패스워드와 나머지 항목들을 전달하는 "지우기" 버튼을 생성합니다. */


    </font></td>
    </tr>
    <tr>
    <td bgcolor=#808080 width=74><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~Name</b></font></td>
    <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
    $putuser[name]</font></td>
    </tr>
    /* 사이트를 로그인한 ID의 사용자 이름을 출력합니다. */

del_lib($no,$tnum,$f,$f2,$root,$putuser) 함수

    특정 경매에 입찰한 입찰자가 입찰을 삭제하기 위한 화면입니다.
    함수의 전달 인자는 경매 삭제 화면을 출력하는 함수와 같습니다.

그림. 14-8 입찰 삭제 화면

form문 만들기

    입찰을 삭제하기 위해 입찰 등록자의 패스워드와 나머지 정보를 전달하는 form문을 만듭니다.


    <form method=post action=main_view.php>
    <input type=hidden name=chanl value=del_lib2>
    /* main_view.php 파일의 $chanl= del_lib2인 항목을 실행합니다. */

  
    <input type=hidden name=tnum value=$no>
    <input type=hidden name=no value=$no>
    /* 입찰자의 번호와 해당 경매의 고유 번호를 전달합니다. */

     
    <input type=hidden name=f value=$f>
    <input type=hidden name=f2 value=$f2>
    /* 경매 메인 테이블 이름과 입찰자 테이블 이름을 전달합니다. */

패스워드 입력란과 접속자 출력하기

    입찰 삭제를 위한 패스워드 입력란을 만들고 현재 이 항목을 클릭한 사용자를 출력합니다.


    <td bgcolor=#808080 width=74><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~Name</b></font></td>
    <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
    $putuser[name]</font></td>
    </tr>
    /* 사이트에 접속한 ID 세션에 해당하는 사용자 이름을 출력합니다. */


    <tr>
    <td bgcolor=#808080 width=74><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <b>~passw</b></font></td>
    <td bgcolor=black width=100><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=password name=passwd size=9></font></td>
    /* 입찰 삭제를 위한 패스워드 입력 항목입니다. */


    <td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
    <input type=submit value=지우기>
    </font></td>
    /* 패스워드와 나머지 정보를 전달하는 "지우기" 버튼을 생성합니다. */

title_end($putally2,$ally3,$no,$f,$f2) 함수

    경매가 마감했을 경우 해당 경매의 제목을 클릭하면 보여주는 화면입니다.

    $putally2 - 해당 경매의 정보를 배열로 저장해서 전달합니다.
    $ally3 - 해당 경매 입찰자의 정보를 배열로 저장해서 전달합니다.

그림. 14-9 경매 마감 화면

낙찰자 출력 하기

    경매가 마감했을 경우 낙찰자의 출력을 보여 주는 부분입니다.


    for($a=1 ; $a < 2 ; $a++)
    {
    /* 이 for문은 앞의 경매 세부 정보 보기에서 사용한 구문이지만 $a가 2보다 작을 때까지만 수행합니다.
       이것은 오직 입찰자중 한 사람만 출력하게 하려는 것입니다. */


      $put2=mysql_fetch_array($ally3);


      if($putally2[smoney]<$put2[bmoney])
      {

        echo("
        <tr>
        <td bgcolor=black align=center><a href = mailto:$put2[email] >
        <font style='font-size:13px;font-style:italic;color:#fffff0'>


        <b>$put2[name]</b></font></a></td>
        /* 기본 금액이 입찰 금액 보다 작을 경우 입찰자의 이름을 출력합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$putally2[edate]</b></font></td>
        /* 마감 날짜를 출력합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:#fffff0'>
        <b>$put2[tel]</b></font></td>
        /* 입찰자의 전화번호를 출력합니다. */


        <td bgcolor=black align=center>
        <font style='font-size:13px;font-style:italic;color:red'>
        <b>$put2[bmoney]</b></font></td>
        </tr>
        /* 입찰자의 입찰 금액을 출력합니다. */
        ");
      }
    }

s_mail($putally2,$ally3,$no,$f,$f2) 함수

    해당 경매가 마감되면 매도자와 낙찰자" 메일을 보내는 함수입니다.

낙찰자와 매도자" 보낼 메시지 만들기

    for($a=1 ; $a < 2 ; $a++)
    {
      $put2=mysql_fetch_array($ally3);


      if($putally2[smoney]<$put2[bmoney])
      {
        $message = " <b>No</b>  $no  <b>title</b> : $putally2[title]<br>
        <b>낙찰자</b> $put2[name] <b>마감시간</b> $putally2[edate]<br>
        <b>Tel</b> $put2[tel]  <b>낙찰금액</b>  $put2[bmoney]<br>
        <b>매도자</b> $putally2[name] <b>매도일</b> $putally2[wdate]<br>
        <b>Tel</b> $putally2[tel] <b>기본금액</b> $putally2[smoney] <br><br>


        <b>공지</b><br>
        낙찰 매일 확인 후 경매 게시판의 경매 글을 직접 삭제 하세요~!";
      }
    }
    /* 입찰자 중 제일 높은 금액의 입찰자 1명의 정보를 $message 변수에 저장합니다. */

메일 보내기

    낙찰자와 매도자의 정보를 메일로 각각 보냅니다.

    $su = " No $no 낙찰 ";
    /* 낙찰 번호를 메일 제목($su)에 저장합니다. */

    $rp = "$put2[email]";
    /* 낙찰자의 메일 주소를 해당 변수에 저장합니다. */

    $rp1 = "$putally2[email]";
    /* 매도자의 메일 주소를 해당 변수에 저장합니다. */

    mail($rp , $su ,$message);
    mail($rp1 , $su ,$message);
    /* 매도자와 낙찰자" 메일을 보냅니다. */

main_view.php 전체 코드

    <?php

    session_start();

    //////////////////////////////////////////////////
    //
    //    일자 : 2000.2.15 am 5
    //   작성자: skycry (hong il)
    //
    //
    //   method : main_view
    //
    //////////////////////////////////////////////////
    ?>


    <?php

    if($username)
    {
      include('func_all.php');
      if($chanl == new_libchal && $username != guest)
      {
        input_view($f,$f2,$connect,$putuser) ;
        mysql_close($connect);
      }


      if($chanl == input_new && $username != guest)
      {

        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";
        error_view($title,$smoney,$edate,$content,$f,$f2);


        mysql_select_db('libchal',$connect);//function
        $max = mysql_query("select max(no) from $f ",$connect );
        $new_no = mysql_result($max,0,0);
        $no = $new_no + "1" ;


        if(!(int)$smoney)
        {
          echo("
          <script>
          window.alert('금액을 다시 입력 하세요..')
          history.go(-1)
          </script>
          ");
          exit;
        }


        $wdate = date("y-m-d");


        mysql_query("insert into $f(no,title,name,email,tel,smoney,content,edate,wdate)
        values('$no','$title','$putuser[name]','$putuser[email]','$putuser[tel1]',
        '$smoney','$content','$edate','$wdate')",$connect);
        echo("
        <html>
        <body>
        <center>
        <form method=post action=main_view.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>글이 등록 되었습니다</b></font>
        <input type=hidden name=chanl value=main_view>
        <input type=hidden name=f value=$f>
        <input type=hidden name=f2 value=$f2>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");

        mysql_close($connect);
      }


      if($chanl == input_newlibchal && $username != guest)
      {

        if($chanl2 == input_newlibchal2 && $username != guest)
        {

          if(!(int)$bmoney || !$bmoney)
          {
            echo("
            <script>
            window.alert('금액을 다시 입력 하세요..')
            history.go(-1)
            </script>
            ");
            exit;
          }


          if($putup2[name] == $putuser[name])
          {
            echo("
            <script>
            window.alert('입찰은 한번만 가능 합니다.')
            history.go(-1)
            </script>
            ");
            exit;
          }


          if($putally2[smoney] >= $bmoney)
          {
            echo("
            <script>
            window.alert('입찰은 기본 금액 보다 높아야 합니다..')
            history.go(-1)
            </script>
            ");
            exit;
          }


          mysql_select_db('libchal',$connect);
          $sise = $putup[sise] + "1" ;


          mysql_query("insert into $f2(name,bmoney,tel,email,tnum)
          values('$putuser[name]','$bmoney','$putuser[tel1]','$putuser[email]','$tnum')",$connect);


          mysql_query("update $f set sise='$sise'  where no='$tnum'",$connect);

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


          <input type=hidden name=chanl value=main_view>
          <input type=hidden name=f value=$f>
          <input type=hidden name=f2 value=$f2>
          <input type=submit value=확인>
          </form>
          </center>
          </body>
          </html>
          ");
        }
        else
        {
          input_newlibchal($tnum,$f,$f2,$putuser) ;
        }

        mysql_close($connect);
      }


      if($chanl == edit_libchal && $username != guest)
      {
        edit_libchal($putally2,$no,$f,$f2,$putuser) ;
        mysql_close($connect);
      }


      if($chanl == edit_libchal_in && $username != guest)
      {
        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";
        error_view($title,$smoney,$edate,$content,$f,$f2);


        $input=mysql_query("select password('$passwd') ",$connect );
        $inputpassw = mysql_result($input,0,0);


        if($putuser[passwd] == $inputpassw)
        {

          if(!(int)$smoney)
          {
            echo("
            <script>
            window.alert('금액을 다시 입력 하세요..')
            history.go(-1)
            </script>
            ");
            exit;
          }

          mysql_select_db('libchal',$connect);//function
          mysql_query("update $f set title='$title', smoney='$smoney' , edate='$edate'
          , content='$content' where no = '$no'",$connect);
          mysql_close;
        }
        else
        {
          echo("
          <script>
          window.alert('passw가 틀렸습니다. 다시 입력해 주세요')
          history.go(-1)
          </script>
          ");
          exit;
        }


        echo("
        <html>
        <body>
        <center>
        <form method=post action=main_view.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>글이 수정 되었습니다</b></font>
        <input type=hidden name=no value=$no>
        <input type=hidden name=chanl value=main_view>
        <input type=hidden name=f value=$f>
        <input type=hidden name=f2 value=$f2>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");
        mysql_close($connect);
      }


      if($chanl == title)
      {
        mysql_select_db('libchal',$connect);//function
        mysql_query("update $f set hit = '$putup[hit]'+1 where no = '$no'",$connect) ;
        view_title($putally2,$ally3,$no,$f,$f2,$putuser) ;
      }


      if($chanl == main_view)
      {
        $s_mail = s_mail($putally2,$ally3,$no,$f,$f2);


        mysql_select_db('adminp',$connect);
        mysql_query("update admin set sum='$t_num' where mview = '$f'",$connect);
        main_view($s_mail,$t_num,$ally,$page,$findtype,$findname,$f,$f2,$root,$username,
        $putuser);
        mysql_close($connect);
      }


      if($chanl == del)
      {
        del($no,$tnum,$f,$f2,$root,$putuser);
      }

      if($chanl == del_no && $username != guest)
      {

        $input=mysql_query("select password('$passwd') ",$connect );
        $inputpassw = mysql_result($input,0,0);


      if($putuser[passwd] == $inputpassw || $root)
      {
        mysql_select_db('libchal',$connect);//function
        $mldel = "delete from $f where no=$no && name='$putuser[name]'";
        $rsult = mysql_query($mldel,$connect);
        $ml2del = "delete from $f2 where tnum=$tnum && name='$putuser[name]'";
        $rsult2 = mysql_query($ml2del,$connect);
      }
      else
      {
        echo("
        <script>
        window.alert('passw가 틀립니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
        }


        echo("
        <html>
        <body>
        <center>
        <form method=post action=main_view.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>경매가 삭제 되었습니다</b></font>
        <input type=hidden name=no value=$no>
        <input type=hidden name=chanl value=main_view>
        <input type=hidden name=f value=$f>
        <input type=hidden name=f2 value=$f2>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");
        mysql_close($connect);
      }


      if($chanl == del_lib)
      {
        del_lib($no,$tnum,$f,$f2,$root,$putuser);
      }


      if($chanl == del_lib2 && $username != guest)
      {

        $input=mysql_query("select password('$passwd') ",$connect );
        $inputpassw = mysql_result($input,0,0);


        if($putuser[passwd] == $inputpassw || $root)
        {
          mysql_select_db('libchal',$connect);//function
          $ml2del = "delete from $f2 where name='$putuser[name]' && tnum='$no' ";
          $rsult2 = mysql_query($ml2del,$connect);
        }
        else
        {
          echo("
          <script>
          window.alert('passw가 틀렸습니다. 다시 입력해 주세요')
          history.go(-1)
          </script>
          ");
          exit;
        }


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


        mysql_close($connect);
      }


      if($chanl == title_end)
      {
        title_end($putally2,$ally3,$no,$f,$f2);
        mysql_close($connect);
      }


      if($chanl == new_libchal && $username == guest 
         || $chanl == input_newlibchal && $username == guest ||
            $chanl == edit_libchal && $username == guest
         || $chanl == del && $username == guest ||
            $chanl == del_lib && $username == guest)
      {
        echo("
        <script>
        window.alert('guest는 이용할 수 없습니다.')
        history.go(-1)
        </script>
        ");
        exit;
      }
    }
    else
    {
      echo("
      <script>
      window.alert('Login 하세요.')
      history.go(-1)
      </script>
      ");
      exit;
    }

    ?>

소스 설명

    func_all.php의 함수를 다양한 방법으로 브라우저에 출력하고 여러 입력 항목 등을 데이터베이스에 저장합니다.

세션 설정

    사이트에 등록된 ID나 guest로 로그인 했을 경우 생성된 세션을 이용해서 경매 게시판의 기능을 수행할 수
    있게 하는 부분입니다.


    session_start();
    /* 세션을 시작합니다. */


    if($username)
    {
    /* 세션이 있을 경우 해당 if문 내용을 수행합니다. if($username){ 와 else{ 사이에 각화면을 출력하는 함수를 사용합니다.
       이같은 방법은 경매 게시판의 이용을 등록된 ID와 guest만이 접속 가능 하도록 하는 것입니다. */

      include('func_all.php');
      /* 함수 파일을 포함합니다. */
    }
    else
    {
      echo("
      <script>
      window.alert('Login하세요.')
      history.go(-1)
      </script>
      ");
      exit;
    }
    /* main_view.php의 마지막 부분에 존재하며 세션이 없을 경우 출력하는 부분입니다. */

새로운 경매 등록하기

    새로운 경매를 등록하는 화면을 출력합니다.


    if($chanl == new_libchal && $username != guest)
    {
    /* $chanl이 new_libchal이고 세션이 guest가 아닐 경우 새로운 경매 등록 화면을 실행합니다. */
      input_view($f,$f2,$connect,$putuser) ;
      mysql_close($connect);
    }

새 경매 데이터베이스 저장하기

    새로운 경매 입력 화면에서 입력한 항목을 데이터베이스에 저장하는 부분입니다.


    if($chanl == input_new && $username != guest)
    {
    /* $chanl이 input_new이고 세션이 guest가 아닐 경우 실행합니다. */
      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" ;
      }
      /* 위 조건 문은 경매 마감 날짜를 설정하는 부분이며 Am과 Pm을 구분합니다. */


      $edate = "$edata1-$edata2-$edata3-$ap-$edata6";
      /* $edate 변수에 날짜 정보를 하나로 저장합니다. */
   

      error_view($title,$smoney,$edate,$content,$f,$f2);
      /* 경매 입력 항목 중 공백 항목이 있으면 에러를 출력합니다. */


      mysql_select_db('libchal',$connect);
      $max = mysql_query("select max(no) from $f ",$connect );
      $new_no = mysql_result($max,0,0);
      $no = $new_no + "1" ;
      /* 경매 메인 테이블에서 마지막 경매 고유번호를 검색하고 +1해서 새로운 경매 고유번호를 만듭니다. */


      if(!(int)$smoney)
      {
        echo("
        <script>
        window.alert('금액을 다시 입력하세요..')
        history.go(-1)
        </script>
        ");
        exit;
      }
      /* 경매 기본 금액이 정수가 아닐 경우 에러 화면을 출력합니다. */


      $wdate = date("y-m-d");
      /* 현재 날짜를 해당 변수에 저장합니다. */
          
          
      mysql_query("insert into $f(no,title,name,email,tel,smoney,content,edate,wdate)
      values('$no','$title','$putuser[name]','$putuser[email]','$putuser[tel1]',
      '$smoney','$content','$edate','$wdate')",$connect);
      /* 경매 메인 테이블에 새 경매 입력 사항을 저장합니다. */


      echo("
      <html>
      <body>
      <center>
      <form method=post action=main_view.php>
      <font style='font-size:13px;font-style:italic;color:#808080'>
      <b>글이 등록되었습니다</b></font>
      <input type=hidden name=chanl value=main_view>
      <input type=hidden name=f value=$f>
      <input type=hidden name=f2 value=$f2>
      <input type=submit value=확인>
      </form>
      </center>
      </body>
      </html>
      ");
      /* 새 경매 항목을 저장하고 확인 화면을 출력합니다. */

      mysql_close($connect);
    }

입찰 항목 출력하기

    해당 경매에 입찰을 할 경우 입찰 금액을 입력하는 화면을 출력하고 , 다시 해당 정보를 데이터베이스에
    저장하는 부분을 만듭니다.


    if($chanl == input_newlibchal && $username != guest)
    {
    /* $chanl이 input_newlibchal이고 세션이 guest가 아닐 경우 입찰 등록 화면을 출력합니다. */

      if($chanl2 == input_newlibchal2 && $username != guest)
      {
      /*   $chanl=input_newlibchal , $chanl= input_newlibchal2이고 세션이 guest가 아닐 때 아래 항목을 실행합니다. */


        if(!(int)$bmoney || !$bmoney)
        {
          echo("
          <script>
          window.alert('금액을 다시 입력하세요..')
          history.go(-1)
          </script>
          ");
          exit;
        }


        if($putup2[name] == $putuser[name])
        {
          echo("
          <script>
          window.alert('입찰은 한번만 가능합니다.')
          history.go(-1)
          </script>
          ");
          exit;
        }
        /* 입찰자와 기존에 등록된 입찰자와 같을 경우 에러 화면을 출력합니다. */


        if($putally2[smoney] >= $bmoney)
        {
          echo("
          <script>
          window.alert('입찰은 기본 금액보다 높아야 합니다..')
          history.go(-1)
          </script>
          ");
          exit;
        }
        /* 입찰 금액이 기본 금액보다 작을 경우 출력합니다. */


        mysql_select_db('libchal',$connect);//function
        $sise = $putup[sise] + "1" ;
        /* 입찰등록 회수를 $sise에 저장합니다. */


        mysql_query("insert into $f2(name,bmoney,tel,email,tnum)
        values('$putuser[name]','$bmoney','$putuser[tel1]','$putuser[email]','$tnum')",$connect);
        /* 입찰자 테이블에 전달 받은 입찰 항목들을 저장합니다. */


        mysql_query("update $f set sise='$sise'  where no='$tnum'",$connect);
        /* $sise의 값을 저장합니다. */


        echo("
        <html>
        <body>
        <center>
        <form method=post action=main_view.php>
        <font style='font-size:13px;font-style:italic;color:#808080'>
        <b>글이 등록 되었습니다</b></font>
        <input type=hidden name=chanl value=main_view>
        <input type=hidden name=f value=$f>
        <input type=hidden name=f2 value=$f2>
        <input type=submit value=확인>
        </form>
        </center>
        </body>
        </html>
        ");
      }
      /* 입찰 등록을 마" 확인 화면을 출력합니다. */
      else
      {
        input_newlibchal($tnum,$f,$f2,$putuser) ;
      }
      /* 입찰 등록 화면입니다. */

      mysql_close($connect);
    }

경매 수정 화면 출력과 데이터베이스 수정

    등록된 경매를 수정하는 화면을 출력하고 해당 테이블의 내용을 수정하는 루틴입니다.



    if($chanl == edit_libchal_in && $username != guest)
    {
    /* $chanl=edit_libchal_in이고 세션이 guest가 아닐 경우 실행합니다. */


      $input=mysql_query("select password('$passwd') ",$connect );
      $inputpassw = mysql_result($input,0,0);
      /* 전달 받은 패스워드를 암호화합니다. */


      if($putuser[passwd] == $inputpassw)
      {
      /* 전달 받은 패스워드와 해당 경매 등록자의 패스워드가 같을 경우 실행합니다. */


        if(!(int)$smoney)
        {
          echo("
          <script>
          window.alert('금액을 다시 입력 하세요..')
          history.go(-1)
          </script>
          ");
          exit;
        }


        mysql_select_db('libchal',$connect);
        mysql_query("update $f set title='$title', smoney='$smoney' , edate='$edate'
        , content='$content' where no = '$no'",$connect);
        /* 해당 경매 테이블에서 전달 받은 수정 항목들을 입력합니다. */
        mysql_close;
      }
      else
      {
        echo("
        <script>
        window.alert('passw가 틀렸습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit; 
      }
      /* 전달 받은 패스워드와 등록자 패스워드가 같지 안으면 위 화면을 출력합니다. */

경매 세부 정보 출력

    경매 메인 화면에서 특정 경매의 제목을 클릭하면 보여주는 화면을 만듭니다.



    if($chanl == title)
    {
    /* $chanl이 title일 경우 실행합니다. */


      mysql_select_db('libchal',$connect);
      mysql_query("update $f set hit = '$putup[hit]'+1 where no = '$no'",$connect) ;
      /* 경매 메인 테이블에서 해당 경매의 조 회수를 +1 해서 저장합니다. */


      view_title($putally2,$ally3,$no,$f,$f2,$putuser) ;
      /* 경매 세부 화면을 출력합니다. */
    }

경매 메인 화면 출력

    if($chanl == main_view)
    {
    /* $chanl 이 main_view 일 경우 실행합니다. */


      $s_mail = s_mail($putally2,$ally3,$no,$f,$f2);
      /* 메일 함수를 $s_mail 변수에 저장합니다. */


      mysql_select_db('adminp',$connect);


      mysql_query("update admin set sum='$t_num' where mview = '$f'",$connect);
      /* admin 영역의 해당 경매 게시판의 총 글 수를 저장합니다. */


      main_view($s_mail,$t_num,$ally,$page,$findtype,$findname,$f,$f2,$root,
      $username,$putuser);
      /* 메인 화면을 출력합니다. */
          
      mysql_close($connect);
    }

입찰 삭제 루틴

    해당 경매에 등록한 입찰자의 입찰을 삭제하는 루틴입니다.



    if($chanl == del_lib2 && $username != guest)
    {
    /* $chanl이 del_lib2이고 세션이 guest가 아닐 경우 실행합니다. */


      $input=mysql_query("select password('$passwd') ",$connect );
      $inputpassw = mysql_result($input,0,0);
      /* 전달 받은 패스워드를 암호화합니다. */


      if($putuser[passwd] == $inputpassw || $root)
      {
      /* 전달 받은 패스워드와 등록된 패스워드가 같거나 admin 쿠키가 있을 경우 실행합니다.*/

        mysql_select_db('libchal',$connect);
        $ml2del = "delete from $f2 where name='$putuser[name]' && tnum='$no' ";
        $rsult2 = mysql_query($ml2del,$connect);
        /* 입찰자 테이블에서 해당 유저의 입찰을 삭제합니다. */
      }
      else
      {
        echo("
        <script>
        window.alert('passw가 틀렸습니다. 다시 입력해 주세요')
        history.go(-1)
        </script>
        ");
        exit;
      }
      /* 전달 되어온 패스워드와 등록된 패스워드가 다를 경우 출력하는 화면입니다. */

guest 이용 불가 항목

    guest로 로그인 했을 경우 경매 게시판의 기능 중 사용 하지 못하는 부분을 설정합니다.


    if($chanl == new_libchal && $username == guest ||
       $chanl == input_newlibchal && $username == guest ||
       $chanl == edit_libchal && $username == guest ||
       $chanl == del && $username == guest ||
       $chanl == del_lib && $username == guest)
    {
    /* 세션이 guest이고 $chanl이 새로운 경매 등록 , 입찰 , 수정 , 경매 삭제 , 입찰 삭제 부분에 해당 할 경우 실행합니다. */

      echo("
      <script>
      window.alert('guest는 이용할 수 없습니다.')
      history.go(-1)
      </script>
      ");
      exit;
    }


    다음장에는 쇼핑 몰을 구현해 보겠습니다.

다음 이전 차례