묻고답하기

일반적으로 대화방들은 새창이 뜨면서 구현되는데
보통 그 대화창이 닫힐 때 로그아웃이 자동적으로 이루어집니다.(아래의 소스와 같이...)

문제는...!
대화방을 새창이 아닌 홈피의 메인 프레임으로 집어 넣었을때입니다.

예를 들면,
가령 대화를 하다가 메뉴의 방명록 게시판버튼을 누르면,
대화창이 방명록으로 로드되어지는데--------->이럴 경우엔 로그아웃이 이루어지지 않습니다.


/////////////////////////////////////<질문>/////////////////////////////////////////////
//   대화창이 다른 페이지로 로딩되어지더라도 로그아웃이 자동적으로 이루어지게 하고 싶습니다.
/////////////////////////////////////////////////////////////////////////////////////////

logout.php파일...

<?

//         대화방을 나가는 부분입니다...!!(로그아웃)

include "config.php";
echo"<head>
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
<link rel=StyleSheet HREF='../../style.css' type=text/css title=style>
<script Laguage='Javascript'>
function startTime(){
       var time= new Date();
       hours= time.getHours();
       mins= time.getMinutes();
       secs= time.getSeconds();
       closeTime=hours*3600+mins*60+secs;
       closeTime+=1.5;
       Timer();
}

function Timer(){
       var time= new Date();
       hours= time.getHours();
       mins= time.getMinutes();
       secs= time.getSeconds();
       curTime=hours*3600+mins*60+secs
       if (curTime>=closeTime){
               self.close();}
       else{
               window.setTimeout('Timer()',100)}
}
</script>
</head>";



// 창이 닫혔을때 그 바로 전화면상태가 채팅부분이었는지
// 검사하고 아니면, 로그아웃 처리를 안해준다...!!!

$arr=file("./member.txt");
for ($i=0;$i<count($arr);$i++)
{
        $temp=explode(":",$arr[$i]);
        $recname[$i]=trim($temp[0]);


        // 멤버화일에 자신의 이름이 없으면 채팅부분이 아닌(입장전...)
        // 곳에서 창을 닫았을 경우 이미 채팅중인 다른 사람들에게
        // 로그아웃메세지를 보이지 않게 한다...!
        if ($recname[$i]==$name) // 멤버화일에 자신의 이름이 있으면
        {
                $index=1;        // 인덱스를 1로준다...!(로그아웃처리함)
                break;           // if문을 빠져나간다.
        }
        else
        {
                $index=0;        // 기록이 없으면 0값으로 넣어줌!
        }
}




if($index==1) // 채팅부분에서 창을 닫았을 경우 로그아웃 처리한다.
{
        echo "<body onload=startTime();>";
        setlocale("LC_TIME","ko");
        $naljja=strftime("%A %H 시 %M 분");
        $fp=fopen("./write.txt","w");



        // 나갔다는 메세지를 저장합니다...!!
        if ($mode=="out")
        {
                $string="<center></font><font color=ff0099><b>【".$name."】</b><font color=0072bc>님이 $naljja</font> 에 퇴장하셨습니다.</font></center>n";
        }
        fwrite($fp,$string);
        fclose($fp);


        // 방장의 기록을 지닌 화일입니다...!!!
        $fas=fopen("admin.txt","r");
        $admin=trim(fgets($fas,100000));
        $admin=stripslashes($admin);
        fclose($fas);


        // 방을 나가는 사람의 이름을 지웁니다...!!
        $arr=file("./member.txt");
        for ($i=0;$i<count($arr);$i++)
        {
                $temp=explode(":",$arr[$i]);
                $recname[$i]=trim($temp[0]);
                $rectime[$i]=trim($temp[1]);

                if ($recname[$i]==$name)            
                {
                        if($admin==$recname[$i])  // 방을 나가는 사람이 방장이라면,!!!
                        {
                                $adminout="OK";
                        }
                        $recname[$i]="";
                }
        }




        // 나머지 사용자의 이름을 기록합니다...!!!
        $ff=fopen("./member.txt","w");
        for ($i=0;$i<count($arr);$i++)
        {
                if($recname[$i]!="")
                {
                        $string="$recname[$i]:$rectime[$i]n";
                        fwrite($ff,$string);

                        if($adminout=="OK")                  // 방장이 나갔을 경우 넘김..!!!
                        {
                                $abc=fopen("admin.txt","w"); //새로운 방장 이름을 저장합니다...!!!
                                fwrite($abc,$recname[$i]);
                                fclose($abc);

                                $fpq=fopen("./write.txt","w");// 새로운 방장을 입력창에 출력합니다...!!
                                $string="<center><font color=ff0099><b>【".$recname[$i]."】<font color=navy></b>님이 방장이 되셨습니다.</font></center>";
                                fwrite($fpq,$string);
                                fclose($fpq);

                                // 방정보도 같이 갱신합니다...!!!
                                $arra=file("./roominfo.txt");
                                for ($q=0;$q<count($arra);$q++)
                                {
                                        $tempp=explode(":",$arra[$q]);
                                        $rname=trim($tempp[0]);
                                        $rmessage=trim($tempp[1]);
                                        $bangjang=trim($tempp[2]);
                                        $pword=trim($tempp[3]);
                                        if($pword==""){$pword="없음";}
                                }
                                $fp2=fopen("roominfo.txt","w");
                                $all="$rname:$rmessage:$recname[$i]:$pword";
                                fwrite($fp2,$all);
                                fclose($fp2);
                                $adminout="NO";
                        }              
                }
        }
        fclose($ff);
} // 채팅부분에서 창을 닫았을 경우 로그아웃 처리하는 if문 닫힘 괄호!


echo "<center>감사합니다...즐거운 대화 ^^!<br><br>";
?>
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
depsi 대화방에서 ''로그아웃''에 관한 질문입니다... [1] 2007.08.10
채의수 해외초중고생 커뮤니티 홍보방법  
빨간양말 프레임 나누는걸 짜놓고 보니...헐~ 초보라서 어케 해야할지.. [2] 2007.08.10
김선국 자료 업로드시 원본파일과 업로드된 파일크기가 다릅니다. [1] 2007.08.10
이정민 Explorer 5에서 Submit 이 제대로 안되는 상황입니다. [1] 2007.08.10
추복일 답변 부탁요..form 과 PHP에 관한 초보 질문입니다.ㅠㅠ [2] 2007.08.10
이순미 페이지메이커에서 자간조정은?  
이정민 익스5에서 제멋대로 레이아웃이 바뀝니다. ㅡ,.ㅡ  
안개 bgm 스킨을 다운 받았는데요.  
이진형 비밀번호를 물어보지 않는 계정을 만들려면? [1] 2007.08.10
DearMai mod_throttle 에 대한 질문  
김정수 Undefined variable 이라는 에러가 뜨는 이유는 [1] 2007.08.10
.Real 로그인창을 어디에 넣어야 어울릴까요? [1] 2007.08.10
이승준 마우스 롤 오버 관련입니다. [1] 2007.08.10
KYJ PHP질문입니다 [1] 2007.08.10
윤 만식 영문윈도우에서 백슬래쉬\ 을 원래의 사선 작대기로 바꾸려면 [1] 2007.08.10
피너츠 에디트 플러스로 작업을 하던 도중.. [3] file 2007.08.10
이은주 [드림위버4]질문올려도 되나요?이미지수정관련작업질문인데.. [2] 2007.08.10
바보버스™ 부탁드립니다.  
스코롤바에 대한 질문입니다... [1] 2007.08.10
BelldandY DB 에서 SQL 쿼리 두개의 결과를 하나로 보고 싶어욤~  
박우식 테이블 고수님들... [3] 2007.08.10
안선옥 부모창의 창 크기 조정하는 버튼을 사용하지 못하게 하려면?  
김동현 포토샵 7.0에서 info [1] 2007.08.10
┏ⓩZion┛ 벅스같이 음악파일을 암호화 하는 방법? 그리고 서버에 무리가 가장 안가는 음악 파일 포멧 [1] 2007.08.10
김재영 으윽.. 포토샵 질문이요..  
야웅이!~ 포토샵 자체 질문입니다. scratch disk문제. [3] 2007.08.10
변희원 이 소스 좀 봐주세요~~^^; [1] 2007.08.10
이오르 이 폰트 이름 아시는 분 좀 갈켜주세요.. [2] 2007.08.10
+charlie+ D-Day 카운트 다운 스크립트 찾아요~^^;; [1] 2007.08.10