<center align="center">
<?
$db = "./777/chat.dat"; // 변경가능
if($_POST[name] && $_POST[content]){
if(!$_COOKIE[name]) setcookie("name", $_POST[name], time() + 86400);
if($_COOKIE[name] != $_POST[name]) {
$memo = "&nbsp;@@@@@<font color=blue>".$_COOKIE[name]."</font>님이 필명을 <font color=blue>".$_POST[name]."</font>으로 바꿨습니다.\r\n";
setcookie("name");
setcookie("name", $_POST[name], time() + 86400);
$fp = fopen($db,"a");
fputs($fp,$memo);
fclose($fp);
}
$_POST[content] = preg_replace('`[\r\n]+`i', '', nl2br(stripslashes($_POST[content])));
$memo = $_POST[name]."@@@@@".$_POST[content]."\r\n";
$fp = fopen($db,"a");
fputs($fp,$memo);
fclose($fp);
?>
<script>
window.open("chat2.php?v=b#rrr","main");
location.replace("chat2.php?v=w");
</script>
<?
} else if($_GET[v]=="w") {
?>
<form method="post" action="chat2.php">
<table border=5 cellspacing=4 cellpadding=4 width=750>
<col width=70><col>
<tr><td><input type="text" name="name" style="width:70" value="<?=$_COOKIE[name]?>"></td>
<td><input type="text" name="content" style="width:560;height:20;font-size:9pt;overflow-y:auto">&nbsp;<input type="submit" value="쓰기"></td>
</tr></table>
</form>
<?
} else if($_GET[v]=="b") {
if($_GET[refresh]!="stop") {
?>
<script>
function refre(){
location.replace("chat2.php?v=n");
}
setTimeout("refre()", 2000);
</script>
<?
}
?>
<table border=5 cellspacing=4 cellpadding=4 width=750>
<col width=70><col>
<?
if(file_exists($db)){
$fp = fopen($db,"r");
$i = 1;
while(!feof($fp)){
$memo = fgets($fp);
$name = strtok($memo,"@@@@@");
$content = strtok("@@@@@");
if($name){
?>
<tr><td><?=$name?></td><td><?=$content?></td></tr>
<?
$i++;
}
}
fclose($fp);
}
?>
<tr><td></td><td style='display:none'><a name="rrr">&nbsp;</a></td></tr>
</table><p>
<?
if($_GET[refresh]=="stop") echo "<a href='?v=b#rrr'>refresh</a>";
else echo "<a href='?v=b&refresh=stop#rrr'>stop</a>";
echo "<p>";
} else if($_GET[v]=="n") {
?>
<script>
location.replace("chat2.php?v=b#rrr","_self");
</script>
<?
} else {
?>
<html><head><title>[챗]</title></head>
<frameset rows="*,80" frameborder="0" border="0" framespacing="0" onload="return true;" onunload="return true;">
<frame src="chat2.php?v=b#rrr" name="main" marginwidth="0" marginheight="0" scrolling="auto" noresize>
<frame src="chat2.php?v=w" name="write" marginwidth="0" marginheight="0" scrolling="no" noresize>
</frameset>
</html>
<?
}
?>
</center>
<style>
* {font-size:9pt}
a {color:black}
a:link {text-decoration:none}
a:visited {text-decoration:none}
a:hover {text-decoration:underline}
table {border-width:6px; border-style: outset}
</style>
아래에 올린 것은 그냥 메모장이지, 채팅은 안되는 거였다.
글쓰는 곳과 읽는 곳을 프레임으로 분리하고,
읽는 곳을 계속 리프레쉬되도록 했는데,
IE를 두개 띄워놓고 보니까, 리프레쉬가 계속 됨에도, 이쪽에서 입력된게, 저쪽에서 실시간으로 확인되지 않았다.
그래서 아예, 다른 페이지로 이동을 시키고, 그 페이지에서 다시 이동시키는 방법으로 리프레쉬를 만들었다.

refresh 간격을 2초로 늘였고, IE 인터넷옵션-일반-(임시인터넷파일)-설정-(저장된페이지의 새버전확인)-자동으로
해놓아도, 새로고침이 된다. - 아마 페이지이동이 있어서,,-

글 읽는 곳 하단에 'stop' 이라고 링크 달았다.
이거 클릭하면, refresh가 멈춘다. refresh가 멈춘 페이지의 하단에는 다시 'refresh'링크를 달았다.
그걸 클릭하면 다시 refresh가 시작된다.

아래와 마찬가지로
필명을 한번 쓰면, 쿠키에 저장되어서, 자동으로 칸이 채워지고,
중간에 필명을 바꾸면, 바뀐다는 표시가 본문에 뜬다.

나머지 사안들은 아래와 같다.

'웹스터디 > nosqlboardchat' 카테고리의 다른 글

간단한 채팅7 -> 8 ->9 ->10  (0) 2008.05.26
간단한 채팅소스 6  (0) 2008.05.26
간단한 채팅소스5  (1) 2008.05.26
간단한 채팅소스4  (0) 2008.05.26
간단한 채팅소스3  (0) 2008.05.26
간단한 채팅소스(또는 메모장)  (0) 2008.05.26
데이타 파일  (0) 2008.05.26
게시판 설명3  (0) 2008.05.26
게시판 설명2  (0) 2008.05.26
게시판 설명1  (0) 2008.05.26
by Anna 안나 2008. 5. 26. 17:49