웹마스터 팁

대화방을 만들어보쟈~

2001.06.03 07:31

해그리드짱!!!

대화방 만들기가 어려울것같지만 그렇지만은 않은가보죠?

제작환경(;;) : PHP 4.0.0&4.0.6dev, MYSQL (버전을 모르겠당..), 아파치 1.3.12&1.3.19

일단은 로그인 화면을 만들어야겠죠?

보통의 폼을 이용하여 $id라는 변수값으로 보내고 쿠키로 등록한뒤에 대화방 페이지로 이동합니다.

chat_1.php///////////////////
<?
if($id){
// 쿠키 설정
   setcookie("chat",$id,0,"/");
// 페이지 이동
   echo "<script>location.replace('chat_2.php')</script>";
}
?>
<form method=post action=<?=$PHP_SELF?>>
<input name=id>
<input type=submit value=입장>
</form>

네, 그리고 이제 본격적으로 대화방을 만들어야겠죠?

일단 mysql에 테이블을 만듭니다.

테이블 구조 ///////////////////////
no int not null auto_increment,
id varchar(20) not null,
chat varchar(255) not null,
color varchar(20) not null,
primary key(no)

채팅 상태는 <iframe>태그를 사용하고,
등록 폼은 밖에 합니다.

등록 폼에는 하는 말,그리고 색이 들어갑니다.

밖 파일(chat_2.html)///////////////////////////
<div align=center>
<iframe src=chat_2_stats.php></iframe>
        <form method=post action=send_chat.php>
                내용 <input name=text>
                글씨색상 <select name="fontcolor" style=width:30>
<option selected value="black" style=background:black></option>
<option value="red" style=background:red></option>
<option value="yellow" style=background:yellow></option>
<option value="blue" style=background:blue></option>
<option value="navy" style=background:navy></option>
<option value="gray" style=background:gray></option>
<option value="silver" style=background:silver></option>
<option value="orange" style=background:orange></option>
<option value="gold" style=background:gold></option></select>
        <input value=입력 type=submit>
        </form>
</div>

안에 있는 파일은 처음엔 mysql에 연결합니다.

$conn = mysql_connect ("서버","아이디","비번");
mysql_select_db ("테이블이 있는 db");

그리고 쿼리를 보내고 데이터를 출력합니다.

echo ("<table width=100>");
$res = mysql_query ("select * from chat",$conn);
while($chat = mysql_fetch_array($res)){
echo ("<tr height=20><td width=100 bgcolor=black style=color:white>$chat[id]</td><td width=5></td><td><span style='color:$chat[color];'>$chat[text]</span></td></tr>");
}
echo ("</table>");

아참, 그리고 실시간으로 채팅하려면 이 자바스크립트가 있어야 합니다.
<script>setTimeOut("location.reload()",5000)</script>
5초에 한번씩 페이지를 새로고침 하라는 얘깁니다.

안 파일(chat_2_stat.php)////////////////////////////
<?
$conn = mysql_connect ("서버","아이디","비번");
mysql_select_db ("테이블이 있는 db");

echo ("<table width=100>");
$res = mysql_query ("select * from chat",$conn);
while($chat = mysql_fetch_array($res)){
echo ("<tr height=20><td width=100 bgcolor=black style=color:white>$chat[id]</td><td width=5></td><td><span style='color:$chat[color];'>$chat[chat]</span></td></tr>");
}
echo ("</table>");
?>

<script>setTimeOut("location.reload()",5000)</script>

그리고 마지막 파일 send_chat.php입니다.

대화글을 올려주는 파일입니다.

역시 mysql에 연결합니다.

$conn = mysql_connect ("서버","아이디","비번");
mysql_select_db ("테이블이 있는 db");

그리고 글을 한번 걸러줍니다(태그 해제)

$text = str_replace("<","<",$text);
$text = str_replace(">",">",$text);

마지막으로 제일 중요한 쿼리...

mysql_query("insert into chat values(null,'$HTTP_COOKIE_VARS[chat]','$text','$fontcolor')",$conn);

그리고 페이지를 이동합니다.

echo "<script>location.replace('chat_2.html")</script>";

글 보내기 (send_chat.php)/////////////////////
<?

$conn = mysql_connect ("서버","아이디","비번");
mysql_select_db ("테이블이 있는 db");

$text = str_replace("<","<",$text);
$text = str_replace(">",">",$text);

mysql_query("insert into chat values(null,'$HTTP_COOKIE_VARS[chat]','$text','$fontcolor')",$conn);

echo "<script>location.replace('chat_2.html")</script>";

?>

알아서 샤바샤바 쓰시길 ^^
헥헥... 힘드네요...이런거 하나 쓰기두..
제목 글쓴이 날짜
교육용 방명록 #8 [delete.php3파일에서 넘겨받은 비밀번호를 검사하여 글을 삭제합니다.] [18] zero 2000.07.03
MySQL 루트비번 분실시 대처요령 [29] zero 2001.04.18
노프레임/카운터에 관련된 PHP함수 팁 몇가지 [1] 차카게살자 2001.12.28
PHP 인증 페이지를 만들자! - Lesson 1 수정본 #2 ☺[폐]허접-_- 2002.01.24
PHP 인증 페이지를 만들자! - Lesson 2 수정본 #1 [5] ☺[폐]허접-_- 2002.01.24
회원관리 프로그램을 구현하고 싶은신 분들께.. [7] [폐]허접-_- 2002.03.18
PHP 인증 페이지를 만들자! - Lesson 3 수정본 #1 [3] ☺[폐]허접-_- 2002.01.24
M3U생성 프로그램을 통한 MP3실시간 듣기.. [11] ▒1q▒ 2001.09.13
배경 음악을 한번만 실행 시키기 - 쿠키이용 [4] 오기 2001.12.02
주소에서 음악 파일만 빼와 윈앰프로 실행하기 [1] file 오기 2001.12.04
[추천 팁] phpmyadmin 으로 복구 할때. 후니 2001.02.28
공부용 방명록이에욥^^. 주석왕창(페이지분할등.기능있어욥~) [2] 프리^^ 2001.04.16
최근게시물 - 첫글은 내용까지, 다음글부터 목록만... [15] СreдturЭ 2001.04.16
[APM] 한글, gif, jpeg, png 다되는 GD 설치 [4] 앤디(andy) 2001.05.22
GD를 이용해본 영어 발음기호 image출력 [3] 앤디(andy) 2001.05.24
쿠키 설정하고 불러올때 주의할점;; [윈도우 멀티부팅 사용하시는 초보분만] [9] daftya 2001.05.29
대화방을 만들어보쟈~ [20] 해그리드짱!!! 2001.06.03
자기 홈 또는 서버 연지 며칠이 지났는지 알 수 있는 php 소스 [15] 고종길 2001.06.03
홈페이지에 실시간뉴스 보여주기 [19] looster 2001.06.05
지금까지 살아온 날 계산해 주는 스크립트 [6] skyel 2001.07.20