PHP 프로그래밍

본문 바로가기
사이트 내 전체검색


Web Programming >> PHP Programming
[목차]
제19장 대화방 만들기(MySQL)

    5. 귀속말 거부 기능

 

이번에는 귀속말 거부기능을 추가합니다. 귀속말 거부기능을 추가하기 위해서는 테이블부터 수정해야 합니다. 귀속말을 거부와 수신을 판단하는 변수가 있어야 합니다. 그리고, 그변수를 어디에 저장할 것인가를 선택하야합니다. 쿠키를 사용할 수도 있고, member테이블에 저장할 수도 있고, room_login테이블에 저장할 수도 있습니다. 물론 room에는 저장할 수 없지요... 귀속말은 회원하고 연관이 있으므로, 회원키가 있는 곳에 저장해야 합니다. 그래서, member나 room_login테이블에 저장할 수 있는 것입니다.

1. 테이블 추가하기

CREATE TABLE member (
   num int(11) NOT NULL auto_increment,
   name varchar(15),
   id varchar(15),
   passwd varchar(30),
   email varchar(50),
   level varchar(50),
   ear char(2) DEFAULT 'Y' NOT NULL,
   PRIMARY KEY (num)
);

위와 같이 추가하기 위해서는 테이블을 삭제하고 다시 만들 수도 있고, alter명령으로 필드를 추가할 수 도 있습니다.

여기서는 필드를 추가해보기로 합니다. 테이블을 삭제하면, 기존회원들도 모두 지워지기 때문입니다.

 

ALTER TABLE member ADD ear VARCHAR (2) DEFAULT 'Y' not null

위와 같이 하면 추가됩니다.

 

2. 귀속말 거부기능 추가하기...

  • 귀속말 거부기능 추가하기
  • 데이터베이스 연결부분이 반복되므로 따로 파일로 만들어서, include문으로 추가하기
  • write()함수를 따로 파일로 만들어서, 유저함수파일을 include문으로 추가하기

위와 같은 기능을 이번에는 처리해보기로 합니다.

 

파일명 : dbconn.html

데이터베이스 연결부분을 따로 만든 파일입니다.

<?

########## 데이터베이스 서버에 연결한다. ##########

$dbconn = mysql_connect("localhost","php","php99") or die("DB서버 연결에 실패하였습니다!");

 

########## 작업 데이터베이스로 sample을 선택한다. ##########

$status = mysql_select_db("sample",$dbconn);

if(!$status) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

?>

 

파일명 : user_function.html

사용자 정의함수를 따로 만든 파일입니다.

 

<?

 

function write($username, $room_uid, $message, $tomsg, $message_dir){

        global $fontsize, $fontcolor, $bold, $italic, $user_name;

 

     $lines = file("${message_dir}/${room_uid}.html");

 

     if(!strcmp($tomsg ,"all")) {

                 $to_ear = "Y";

     } else if($tomsg != "") {

                

                $query = "SELECT name,ear FROM member  WHERE id ='$tomsg' ";

 

                $result= mysql_query($query);

                if (!$result) {

                   error("QUERY_ERROR");

                   exit;

                }

 

                $total_record = mysql_num_rows($result);

                if($total_record) {

                        $to_name = mysql_result($result,0,0);

                        $to_ear = mysql_result($result,0,1);

                }

                else {

                        $tomsg = "all";

                        $to_ear = "Y";

                }

                

         }

         else {

                        $tomsg = "";

                        $to_ear = "N";

         }

 

        $total = count($lines);

    $start = $total - 20;

    if($start < 0) $start = 0;

    $end = $total;

 

        if($to_ear == "Y") {

                if($bold == "Y") $message = "<b>$message</b>";

                if($italic == "Y") $message = "<i>$message</i>";

                $message = "<font size='${fontsize}' color='${fontcolor}'><b>${user_name}</b> : ${message}</font>";

 

                $newmessage = "$tomsg|$username|$message<br>";

        }else {

                $message = "<font size='3' color='blue'><b>${to_name}</b> 님께서 귀속말을 거부하였습니다.</font>";

 

                $newmessage = "|$username|$message<br>";

        }

 

    $fp=fopen ("${message_dir}/${room_uid}.html", "w");

 

    for ($i = $start; $i < $end; $i++)  {

        fwrite($fp, "$lines[$i]");

    }

 

    fwrite($fp, "$newmessage\n");

    fclose($fp);

 

}

 

function error() {

    header("Content-type: text/html");

    return print"<body bgcolor=ffffff><h1>에러임돠 열심히 해보세요</body></html>";

        exit;

 

}

 

?>

 

 

파일명 : room_list.html

대기실을 구현한 것으로 만들어진 대화방들이 나타납니다. 여기서, 방을 만들기와 방에 입실하기 부분으로 연결 할 수 있습니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>self.close();</SCRIPT>";

        exit;

}

?>

 

<center><h1>Lee LAB 대화방 </h1><center>

<hr width=80%>

<?

include("user_function.html");

include("dbconn.html");

 

$result= mysql_query ("select * from room ", $dbconn);

 

$Total = mysql_num_rows($result);

 

if (!$Total){

        echo ("<center><h1>아직 생성된 방이 없네요 </h1><center>");

}else{

        echo ("

<center>

<table width='52%' border='0' cellspacing='0' cellpadding='0'>

  <tr bgcolor='#000000'>

    <td height='26' width='90%'>

      <div align='center'><font color='#FFFFFF' size='2'>생성된 대화방 이름 </font></div>

    </td>

  </tr>

");

$counter = 0;

 

        while ($counter < $Total){

                $room_uid = mysql_result($result, $counter, "uid");

                $room = mysql_result($result, $counter, "room");

                echo ("

<tr>

    <td height='36' width='90%'><a href='room_in.html?room_uid=$room_uid&message=$message'>$room</td>

</tr>

");

                $counter = $counter +1;

        }

}

 

echo("

<center>

<FORM ACTION='room_create.html' METHOD='POST'>

    <table width='37%' border='1' cellspacing='0' cellpadding='0' height='86' bordercolor='#000000'>

    <tr bgcolor='#999999'>

    <td height='29'>

       <div align='center'><font color='#FFFFFF' size='2'>◈ 대화방 ◈</font></div>

    </td>

    </tr>

    <tr>

    <td>

       <div align='center'><font size='2'>대화방제목

       <input type=text name=room size=15>

       <input type=submit value='대화방만들기' name='submit'>

       </font> </div>

    </td>

    </tr>

    </table>

    <font size='2'>대화방제에 공백이 있으면 안됩니다. </font>

  </form>

</center>

");

?>

 

 

파일명 : room_create.html

대화방 만들기 기능을 구현한 부분입니다. 대화방을 만들고, 대화창으로 이동합니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>self.close();</SCRIPT>";

        exit;

}

 

if (!$room) {

        echo ("

                <script>

                window.alert ('대화방제목은?')

                history.go(-1)

                </script>

        ");

        exit;

}

 

$message_dir = "./data"; //message 디랙토리의 절대경로

 

include("user_function.html");

include("dbconn.html");

 

// 대화방이름이 중복될 수 없으므로 같은 대화방명이 있는가를 검색하는 부분입니다.

$result= mysql_query ("select * from room where room = '$room'", $dbconn);

$Total = mysql_num_rows($result);

 

if($Total) {

    echo ("

         <script>

            window.alert ('같은 대화방 제목이 있습니다.')

            history.go(-1)

         </script>

    ");

    exit;

}

 

// 대화방을 만드는 부분입니다.

$room_uid = time();

mysql_query("insert into room (uid,room) values($room_uid,'$room')", $dbconn);

 

// 대화방에 입실한 것을 저장하는 부분입니다. chat_list.html에서 검색할 때 사용할 수 있습니다.

mysql_query("insert into room_login (chat_id,room_uid) values('$user_id',$room_uid)", $dbconn);

 

// 대화방에 입실할 때 메시지를 출력하기위한 부분입니다.

$tomsg = all;

$newmessage = "$tomsg|$user_id|<font size=-1 color=$ucolor><B>$user_name</B>님께서 대화방을 만들었습니다.</font><br>";

 

$fp=fopen ("$message_dir/${room_uid}.html", "w");

fwrite($fp, "$newmessage\n");

fclose($fp); 

// 대화창으로 이동하는 부분입니다.

echo ("

     <script>

         location.replace('room_login.html?room_uid=$room_uid');

     </script>

");

exit;

?>

 

 

 

 

 

 

파일명 : room_in.html

대화방 입실하기 기능을 구현한 부분입니다. room_login테이블에 레코드를 추가하고, 대화창으로 이동합니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>self.close();</SCRIPT>";

        exit;

}

 

$message_dir = "./data"; //message 디랙토리의 절대경로

 

include("user_function.html");

include("dbconn.html");

 

// 기존에 입실한 내용이 남아있는 가를 체크하는 부분입니다. 만약에 있다면, 바로 대화창으로 넘어갑니다.

$query = "select * from room_login where room_uid = '$room_uid' AND chat_id = '$user_id'";

//echo $query;

$result= mysql_query ($query, $dbconn);

$Total = mysql_num_rows($result);

if($Total) {

        echo ("

                 <script>

                         location.replace('room_login.html?room_uid=$room_uid');

                 </script>

        ");

    exit;

}

 

// room_login테이블에 추가합니다. 입실한 것을 체크하기위해 필요합니다.

mysql_query("insert into room_login (chat_id,room_uid) values('$user_id',$room_uid)", $dbconn);

 

// 입실할 때 대화창에 메시지를 남기기위한 부분입니다.

$tomsg = all;

$message = "<font color=blue>님께서 대화방에 입실하였습니다.</font>";

write($user_id, $room_uid, $message, $tomsg,$message_dir);

 

// 대화창으로 이동합니다.

echo ("

     <script>

         location.replace('room_login.html?room_uid=$room_uid');

     </script>

");

 

?>

 

 

 

 

파일명 : room_login.html

대화창입니다. 대화내용을 출력해야하고, 대화방 입실자를 보야줘야하고, 대화내용을 입력해야합니다. 그러므로, 프레임기능을 이용하여, 화면을 분할해서 내용을 출력합니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>self.close();</SCRIPT>";

        exit;

}

 

echo ("

<frameset rows='55,*,60' frameborder='NO' border='0' framespacing='0'>

  <frame name='room_top' scrolling='NO' noresize src='room_top.html?room_uid=$room_uid'>

        <frameset cols='*,200' frameborder='NO' border='0' framespacing='0'>

          <frame name='msg_list' src='say.html?room_uid=$room_uid'>

          <frame name='chat_list' src='chat_list.html?room_uid=$room_uid' scrolling='NO' noresize >

        </frameset>

  <frame name='msg_input' scrolling='NO' noresize src='chat.html?room_uid=$room_uid'>

</frameset>

<noframes><body bgcolor='#FFFFFF'>

");

?>

 

 

 

파일명 : room_top.html

대화방의 로고가 출력되고, 메뉴도 나타납니다. 개인정보수정과 로그아웃을 할 수 있는 링크가 추가 되었습니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>window.close();</SCRIPT>";

        exit;

}

?>

<style type="text/css">

<!--

.main {  font-family: "굴림"; font-size: 10pt; color: black; line-height: 11pt}

.title {  font-family: "굴림"; font-size: 10pt; color: #000000; line-height: 11pt}

.title2 {  font-family: "굴림"; font-size: 10pt; color: #205000; line-height: 11pt}

table { font-size:10pt; }

a:link, a:visited, a:active { color: black; text-decoration : none; font-weight: none;}

A:hover { text-decoration: none; color: FF0161; font-weight: none;}

//-->

</style>

 

<script language="javascript">

<!--

         userinfo = null;

function user_info(url) {

     userinfo = window.open(url,"userinfo","width=350,height=243,menubar=no,scrollbars=auto,resizable=no,status=no");

     userinfo.focus();

}

 

-->

</script>

 

<body bgcolor="#EEEEEE">

<table width=600 align=left><tr><td align="left"><font size=3><b>LeeLAB 대화방</td><td align="right" height=40 valign="bottom">

<a class=main href="javascript:user_info('user_conf.html')">개인정보변경</a> |

<a class=main href="room_out.html?room_uid=<?echo("$room_uid");?>" target="_top">나가기</a>

</td></tr></table>

</body></html>

 

파일명 : chat_list.html

대화방에 입실한 사람의 목록을 보여주는 부분입니다.

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>top.close();</SCRIPT>";

        exit;

}

 

include("dbconn.html");

 

// 대화방의 이름을 구하는 부분입니다.

$result= mysql_query ("select room from room where uid='$room_uid' ", $dbconn);

$room_name = mysql_result($result,0,0);

 

// 전체 대화방의 입실자의 수를 구합니다. $Total 변수에 저장되겠지요

$result= mysql_query ("select * from room_login where room_uid='$room_uid' ", $dbconn);

$Total = mysql_num_rows($result);

 

// $Total이 0보다 크면, 즉, 입실자가 있으면, 목록을 보여줍니다.

if ($Total){

   // 대화방의 이름을 출력합니다.

    echo ("

    <center>

    <table width='150' border='0' cellspacing='0' cellpadding='0'>

    <tr bgcolor='#000000'>

    <td height='26' >

    <div align='center'><font color='#FFFFFF' size='2'><b>$room_name </b></font></div>

    </td>

    </tr>

    ");

    $counter = 0;

    // 대화방 입실자를 반복문을 이용하여 출력합니다.    

    while ($counter < $Total) {

        $chat_id = mysql_result($result, $counter, "chat_id");

        $result1= mysql_query ("select name from member where id='$chat_id' ", $dbconn);

      

        $chat_name = mysql_result($result1,0,0);

        echo ("

    <tr>

    <td height='26'>$chat_name</td>

    </tr>

        ");

        $counter = $counter +1;

    }

}

?>

</table>

<?

 

// 5초마다 리프레시기능을 이용하여 다시 읽어 보여줍니다.

echo("

<META HTTP-EQUIV='Refresh' CONTENT='5; url=chat_list.html?room_uid=$room_uid'>

");

exit;

?>

 

파일명 : say.html

대화내용을 출력하는 부분입니다. 귀속말 거부기능에서 중요한 부분중에 하납니다.

<?

//message 디랙토리의 절대경로

$message_dir = "./data";

 

$lines = file("${message_dir}/${room_uid}.html");

header("Content-type: text/html");

 

// 5초마다 Refresh기능을 이용하여 다시 읽어 출력합니다.

print "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='5; url=$PHP_SELF?room_uid=$room_uid'></HEAD><BODY BGCOLOR='FFFFFF'>";

 

// 마지막 20줄만을 읽어 출력합니다.

$total = count($lines);

$start = $total - 20;

if($start < 0) $start = 0;

$end = $total;

 

for ($i = $start; $i < $end; $i++)  {

    $talk = $lines[$i];

    $lsat = split('\|', $talk);

    if($lsat[0] == "all"){

        print "$lsat[2]";

    }

    else if($lsat[0] == "") {

        if(!strcmp($lsat[1] , $user_id))        print "$lsat[2]";

    }

    else{

        if($lsat[0] == $user_id) print "<font size=2 color=blue>☎귓속말 </font>$lsat[2]";

        elseif($lsat[1] == $user_id) print "<font size=2 color=blue>☏귓속말 </font>$lsat[2]";

   }

}

 

//화면 스크롤이 있을 때 마지막 줄로 자동 스크롤되도록 처리합니다.

echo "<script>scroll(1,100000)</script>\n";

exit;

?>

 

 

파일명 : chat.html

대화내용을 입력할 때 처리하는 부분입니다.

 

<?

header("Content-type: text/html");

 

if(!$user_id || !$user_name) {

        echo "<SCRIPT>self.close();</SCRIPT>";

        exit;

}

 

include("user_function.html");

include("dbconn.html");

 

//message 디랙토리 절대경로

$message_dir = "./data";

 

if(!$fontcolor) $fontcolor = "black";

if(!$fontsize) $fontsize = "3";

if(!$bold) $bold = "N";

if(!$italic) $italic = "N";

 

if($room_uid == "") {

      error();

}

 

print"

<HTML>

 <HEAD>

   <TITLE>대화방</TITLE>

   <style>

    a:link, a:visited, a:active { text-decoration:none; color:#003366; }

    A:hover{color:blue;}

    body, tr, td { font-size : 10pt;}

   </style>

 

 <SCRIPT LANGUAGE='JavaScript'>

 <!--

 function FocusOn() {

 document.form_submit.message.focus();

 return;

 }

 

function chat()

{

  form_submit.submit();

 

}

 

//-->

 </SCRIPT>

 

 </HEAD>

  <BODY bgcolor=#FFFFFF text=#000000 topmargin=5 onLoad=FocusOn()>

     <table  cellspacing=0 cellpadding=1 border=0>

      <tr>

        <form name='form_submit' action='chat.html' method='post'>

        <input name=room_uid type=hidden value='$room_uid'>

                <td align=\"left\">

&nbsp;&nbsp;&nbsp;&nbsp;";

 

$query = "SELECT uid,chat_id FROM room_login  WHERE room_uid =$room_uid ORDER BY uid DESC";

 

$result= mysql_query($query);

if (!$result) {

   error("QUERY_ERROR");

   exit;

}

 

$total_record = mysql_num_rows($result);

?>

                <select name="tomsg">

                <option value="all">모두에게</option>

<?

for($i = 0; $i < $total_record; $i++) {

   $my_uid = mysql_result($result,$i,0);   

   $my_chat_id = mysql_result($result,$i,1);

 

   if($user_id != $my_chat_id) {

           $query5 = "SELECT name FROM member WHERE id = '$my_chat_id'";

           $result5 = mysql_query($query5);

           if(!$result5) {

                  error("QUERY_ERROR");

                  exit;

           }

           $my_chat_name = mysql_result($result5,0,0);

?>

                <option value="<?echo("$my_chat_id");?>" <?if($my_chat_id == $tomsg) echo(" selected");?>><?echo("$my_chat_name");?></option>

<?

        }

}

print " </select>

           <input type=text name=message value='' size=45>

          </td>

        </tr>

                <tr>

                <td align=\"left\">

&nbsp;&nbsp;&nbsp;&nbsp;

                <INPUT TYPE=\"checkbox\" NAME=\"bold\" value='Y'";

                if(!strcmp($bold,"Y")) echo(" checked");

                print ">진하게

                &nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=\"checkbox\" NAME=\"italic\" value='Y'";

                if(!strcmp($italic,"Y")) echo(" checked");

                print ">기울림

                &nbsp;&nbsp;&nbsp;&nbsp;<select name=\"fontcolor\">

      <option  value=\"black\" ";

          if(!strcmp($fontcolor,"black")) echo(" selected");

          print ">black</option>

      <option  value=\"#004080\" ";

          if(!strcmp($fontcolor,"#004080")) echo(" selected");

          print ">dark blue</option>

          <option  value=\"#3232CD\"";

          if(!strcmp($fontcolor,"#3232CD")) echo(" selected");

          print ">medium blue</option>

          <option  value=\"purple\"";

          if(!strcmp($fontcolor,"purple")) echo(" selected");

          print ">purple</option>

          <option  value=\"green\"";

          if(!strcmp($fontcolor,"green")) echo(" selected");

          print ">green</option>

          <option  value=\"orange\"";

          if(!strcmp($fontcolor,"orange")) echo(" selected");

          print ">orange</option>

          <option  value=\"brown\"";

          if(!strcmp($fontcolor,"brown")) echo(" selected");

          print ">brown</option>

          <option  value=\"gray\"";

          if(!strcmp($fontcolor,"gray")) echo(" selected");

          print ">gray</option>

          <option  value=\"#007FFF\"";

          if(!strcmp($fontcolor,"#007FFF")) echo(" selected");

          print ">slate blue</option>

          <option  value=\"orchid\"";

          if(!strcmp($fontcolor,"orchid")) echo(" selected");

          print ">orchid</option>

          <option  value=\"fuchsia\"";

          if(!strcmp($fontcolor,"fuchsia")) echo(" selected");

          print ">magenta</option>

          <option  value=\"#FF7F00\"";

          if(!strcmp($fontcolor,"#FF7F00")) echo(" selected");

          print ">coral</option>

          <option  value=\"#9F5F9F\"";

          if(!strcmp($fontcolor,"#9F5F9F")) echo(" selected");

          print ">blue violet</option>

          <option  value=\"violet\"";

          if(!strcmp($fontcolor,"violet")) echo(" selected");

          print ">violet</option>

          <option  value=\"#FF6EC7\"";

          if(!strcmp($fontcolor,"#FF6EC7")) echo(" selected");

          print ">neon pink</option>

          <option  value=\"#D98719\"";

          if(!strcmp($fontcolor,"#D98719")) echo(" selected");

          print ">cooper</option>

          <option  value=\"#9932CD\"";

          if(!strcmp($fontcolor,"#9932CD")) echo(" selected");

          print ">dark orchid</option>

          <option  value=\"#7093DB\"";

          if(!strcmp($fontcolor,"#7093DB")) echo(" selected");

          print ">dark turquoise</option>

          <option  value=\"#8E236B\"";

          if(!strcmp($fontcolor,"#8E236B")) echo(" selected");

          print ">maroon</option>

          <option  value=\"mediumpurple\"";

          if(!strcmp($fontcolor,"mediumpurple")) echo(" selected");

          print ">medium orchid</option>

          <option  value=\"#4D4DFF\"";

          if(!strcmp($fontcolor,"#4D4DFF")) echo(" selected");

          print ">neon blue</option>

          <option  value=\"#EAADEA\"";

          if(!strcmp($fontcolor,"#EAADEA")) echo(" selected");

          print ">plum</option>

          <option  value=\"#8C1717\"";

          if(!strcmp($fontcolor,"#8C1717")) echo(" selected");

          print ">scarlet</option>

          <option  value=\"#238E68\"";

          if(!strcmp($fontcolor,"#238E68")) echo(" selected");

          print ">sea green</option>

          <option  value=\"#3299CC\"";

          if(!strcmp($fontcolor,"#3299CC")) echo(" selected");

          print ">sky blue</option>

          <option  value=\"#38B0DE\"";

          if(!strcmp($fontcolor,"#38B0DE")) echo(" selected");

          print ">summer sky</option>

          <option  value=\"#CC3229\"";

          if(!strcmp($fontcolor,"#CC3229")) echo(" selected");

          print ">violet red</option>

          <option  value=\"#32CD99\"";

          if(!strcmp($fontcolor,"#32CD99")) echo(" selected");

          print ">aquamarine</option>

          <option  value=\"cadetblue\"";

          if(!strcmp($fontcolor,"cadetblue")) echo(" selected");

          print ">cadetblue</option>

          <option  value=\"chocolate\"";

          if(!strcmp($fontcolor,"chocolate")) echo(" selected");

          print ">chocolate</option>

          <option  value=\"darkgoldenrod\"";

          if(!strcmp($fontcolor,"darkgoldenrod")) echo(" selected");

          print ">darkgoldenrod</option>

          <option  value=\"darkkhaki\"";

          if(!strcmp($fontcolor,"darkkhaki")) echo(" selected");

          print ">darkkhaki</option>

          <option  value=\"darkred\"";

          if(!strcmp($fontcolor,"darkred")) echo(" selected");

          print ">darkred</option>

          <option  value=\"darksalmon\"";

          if(!strcmp($fontcolor,"darksalmon")) echo(" selected");

          print ">darksalmon</option>

          <option  value=\"darkslateblue\"";

          if(!strcmp($fontcolor,"darkslateblue")) echo(" selected");

          print ">darkslateblue</option>

          <option  value=\"lightslategray\"";

          if(!strcmp($fontcolor,"lightslategray")) echo(" selected");

          print ">lightslategray</option>

          <option  value=\"salmon\"";

          if(!strcmp($fontcolor,"salmon")) echo(" selected");

          print ">salmon</option>

          <option  value=\"silver\"";

          if(!strcmp($fontcolor,"silver")) echo(" selected");

          print ">silver</option>

          <option  value=\"tan\"";

          if(!strcmp($fontcolor,"tan")) echo(" selected");

          print ">tan</option>

          <option  value=\"tomato\"";

          if(!strcmp($fontcolor,"tomato")) echo(" selected");

          print ">tomato</option>

          <option  value=\"turquoise\"";

          if(!strcmp($fontcolor,"turquoise")) echo(" selected");

          print ">turquoise</option>

          <option  value=\"#FF9696\"";

          if(!strcmp($fontcolor,"#FF9696")) echo(" selected");

          print ">난이옷</option>

          <option  value=\"#A537DC\"";

          if(!strcmp($fontcolor,"#A537DC")) echo(" selected");

          print ">보라색</option></select>

      &nbsp;&nbsp;&nbsp;&nbsp;<select name=\"fontsize\">

      <option  value=\"2\"";

          if(!strcmp($fontsize,"2")) echo(" selected");

          print ">작게</option>

          <option  value=\"3\"";

          if(!strcmp($fontsize,"3")) echo(" selected");

          print ">보통</option>

          <option  value=\"4\"";

          if(!strcmp($fontsize,"4")) echo(" selected");

          print ">크게</option>

          <option  value=\"5\"";

          if(!strcmp($fontsize,"5")) echo(" selected");

          print ">아주크게</option>

                </select>

     </td>

    </tr>

</form>

   </table>

        ";

 

if ($message) {

   write($user_id, $room_uid, $message, $tomsg,$message_dir);

   echo(" <SCRIPT LANGUAGE='JavaScript'>

    <!--

    top.msg_list.document.location.href='say.html?room_uid=$room_uid&message=$message'

    //-->

    </SCRIPT>");

}               

exit;

 

?>

</body></html>

 

 

파일명 : user_conf.html

개인정보 수정하는 부분으로, 여기서는 귀속말의 거부기능만을 처리합니다.

 

<?

if($user_id == "" || $user_name == "") {

        echo ("         

        <SCRIPT LANGUAGE='JavaScript'>

        <!--

        top.close();

        //-->

        </SCRIPT>

                ");

    exit;

 

}

 

include("dbconn.html");

 

if($mode == "modify") {

        $query = "UPDATE member set ear='$ear' where id='$user_id'";

//echo("$query");

 

        $result = mysql_query($query);

        if (!$result) {

           error("QUERY_ERROR");

           exit;

        }

?>

</style>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSER

 

        window.close();

 

 

// STOP HIDING -->

</SCRIPT>

<?      exit;

}

 

$php_self=$PHP_SELF;

 

        $query = "SELECT ear FROM member WHERE id ='$user_id' ";

        

        $result = mysql_query($query);

        if (!$result) {

          error("QUERY_ERROR");

          exit;

        }

        $ear = mysql_result($result,0,0);

 

?>

<HTML>

<HEAD>

<TITLE>대화창 설정</TITLE>

 

</HEAD>

<BODY BGCOLOR=#FFFFFF oncontextmenu="return false">

<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2 width="330">

<tr>

    <td align=center>&nbsp;<font color=blue size=3>대화창 설정

        <hr></td>

</tr>

<form name="talk_form" method="post" action="<?echo("$php_self");?>">

<input name=mode type=hidden value='modify'>

<tr><td align=center>

        <table border="0" cellpadding="0" cellspacing="0" width="80%" >

    <tr>

                <td width="116" align="left" height=30><font size="2">귓속말 수신 설정</font></td>

            <td width="154" align="left"><font size="2"><input type="radio" name="ear" value="Y" <?if($ear == "Y") echo("checked");?>>수신

                        <input type="radio" name="ear" value="N" <?if($ear == "N") echo("checked");?>>거부</font></td>

        </tr>

          <tr>

             <td width="154" align="right" height=50><p><font size="2"><input type="submit" value="   변경하기   "></font></td>

             <td width="154" align="left"><p><font size="2"><input type="button" value="   취소   " onclick="self.close();"></font></td>

           </tr>   

       </table>

  </td>

  </tr>

</TABLE>

</BODY>

</HTML>

 

파일명 : room_out.html

대화방을 빠져나가는 부분으로, 대화방의 입실자가 없을 때는 대화방 자체를 삭제해야 합니다.

 

<?

include "user_function.html";

include "dbconn.html";

 

//message 디랙토리 절대경로

$message_dir = "./data";

 

// 대화방을 나갈 때 메시지를 남기는 부분입니다.

$date = date( "l dS of F Y h:i:s A" );

$message = "님이 대화방을 나갔습니다.($date)";

$tomsg = "all";

write($user_id, $room_uid, $message, $tomsg, $message_dir);

 

// 입실 테이블에서 회원 아이디를 삭제합니다.

$query="delete from room_login where chat_id='$user_id' ";

$result= mysql_query($query, $dbconn);

 

// 대화방에 입실한 회원이 없으면 대화방을 삭제하는 부분

$result= mysql_query("select * from room_login where room_uid='$room_uid' ", $dbconn);

 

// 입실자의 수를 계산하는 부분으로 $Total변수에 입실자의 수가 저장됩니다.

$Total = mysql_num_rows($result);

 

if(!$Total) {

// 입실자가 없을 때는 대화방 자체를 삭제합니다.

      $query="delete from room where uid='$room_uid' ";

      $result= mysql_query($query, $dbconn);

 

// 대화내용을 저장하는 파일을 삭제합니다.

      unlink("${message_dir}/${room_uid}.html");

 

}

 

?>

<SCRIPT LANGUAGE="JavaScript">

<!-- HIDE FROM OTHER BROWSER

        window.location.href='room_list.html';

// STOP HIDING -->

</SCRIPT>

<?

exit;

?>

 

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.