묻고답하기

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

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

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


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

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 남기남
이승준 마우스 롤 오버 관련입니다. [1] 2007.08.10
.Real 로그인창을 어디에 넣어야 어울릴까요? [1] 2007.08.10
김정수 Undefined variable 이라는 에러가 뜨는 이유는 [1] 2007.08.10
DearMai mod_throttle 에 대한 질문  
이진형 비밀번호를 물어보지 않는 계정을 만들려면? [1] 2007.08.10
안개 bgm 스킨을 다운 받았는데요.  
이정민 익스5에서 제멋대로 레이아웃이 바뀝니다. ㅡ,.ㅡ  
이순미 페이지메이커에서 자간조정은?  
추복일 답변 부탁요..form 과 PHP에 관한 초보 질문입니다.ㅠㅠ [2] 2007.08.10
이정민 Explorer 5에서 Submit 이 제대로 안되는 상황입니다. [1] 2007.08.10
김선국 자료 업로드시 원본파일과 업로드된 파일크기가 다릅니다. [1] 2007.08.10
빨간양말 프레임 나누는걸 짜놓고 보니...헐~ 초보라서 어케 해야할지.. [2] 2007.08.10
채의수 해외초중고생 커뮤니티 홍보방법  
depsi 대화방에서 ''로그아웃''에 관한 질문입니다... [1] 2007.08.10
산나라 db에 날짜형식(2003-08-25 같은..)으로 된 값을 기준으로 데이터를 추출하려면... [2] 2007.08.10
Toxic 썸네일 클릭했을때 자동으로 큰 이미지 사이즈에 맞춰 새창 띄우기.. [2] 2007.08.10
김효성 저기요 태이블에 링크 사용법좀 알려주세요 [1] 2007.08.10
머냐냐 프레임 상단과 게시판과의 관계 말입니다. [1] 2007.08.10
사악소미 레이어에서 게시판을 어떻게 불려오나요.. [2] 2007.08.10
부생여몽 포토샵을 깔고 폰트를 넣었는데 폰트추가가 안되요..  
사랑지기 그림게시판 그림한꺼번에 다운받는방법아시는분??ㅠㅠ [1] 2007.08.10
Stylist™ 포토샵에서 글씨고를때 나오는 글씨체가 이상해요(그림첨부) [1] 2007.08.10
bijou 하이퍼링크에서.. [1] 2007.08.10
이우진 헉 -_- 밑에꺼 이유알았당.. ㅠㅠ 도움좀주세요 ㅠㅠ [2] 2007.08.10
한 승구 윈도우 크기를 무조건 720*480에 맟게 열구 싶은데여.... [2] 2007.08.10
hanahime 이 소스 좀 봐주세요.  
도엔 FTP 에 대한 질문입니다; [2] 2007.08.10
hozz호찌 서서히, 레이어 투명도가 높아지게 하려면? [2] 2007.08.10
정혁준 아바타와 메뉴가 춤을춰요 ㅠㅠ  
대전시민 이게 왜 안되죠?