2011-01-27 4 views
0

예를 들어, 플래시 swf 게임이 있고, 사용자가 connect를 누르면 무작위 ID가 할당되어 mysql 테이블에 저장됩니다. 그런 다음 다른 사용자가 연결 한 다음이 임의의 ID에 연결할 수 있습니다. 사용자가 연결 끊기를 클릭하면 다른 사람들이 연결하려고 할 때 테이블에서 빼낸 ID를 가지게됩니다. ID는 연결되지 않습니다. 창문이 PHP 스크립트를 실행하도록 닫혀있을 때 가능합니까? 그래서 나는 그것을 자신의 사용자 ID를 지울 수 있습니까?누군가 브라우저 창을 닫을 때 PHP 함수를 실행할 수 있습니까?

+1

안정적으로 사용하지 않습니다. 사람들은 네트워크 연결이 끊어 지거나 브라우저가 다운 될 수 있습니다. 잠시 동안 비활성 상태였던 로그인은 주기적으로 제거해야합니다. – Quentin

+0

@ David :이 질문에 대한 유일한 정답입니다. 왜 대답하지 않으시겠습니까? – weltraumpirat

+0

신뢰할 수없는 사람들과 기꺼이 함께 살아가는 한 방법이 있기 때문에. – Quentin

답변

1

사용

var clicked = false; 

document.onclick = function() 
{ 
//alert(event.srcElement.tagName); 
    if(event.srcElement.tagName) 
     clicked=true; 
} 
var IE = document.all?true:false 

// If NS -- that is, !IE -- then set up for mouse capture 
if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) { 


    } else if (window.sidebar) { 
    clicked= true; 

    } else { 
    if(window.opera && window.print) clicked= false; 
    } 
</script> 

<script> 
function doUnload() 
{ 

    urlstring = "http://www.google.com/popup.php";// add popup url 
      window.open(urlstring,'mywin',"height=400px,width=500px,status=no,toolbar=no"); 

} 



</script> 


<body onbeforeunload="if(!clicked) doUnload(); "> 
+0

+1 예를 들어 위의 설명처럼 100 % 확신 할 수는 없지만 모든 상황에서 작동합니다. – automaticoo

+0

@automaticoo 잘 내 응용 프로그램은 AIM과 비슷한 웹 응용 프로그램이며 사용자가 로그인 한 상태입니다.이 응용 프로그램은 mysql 데이터베이스에서 사용자 정보를 가져 와서 어떻게 표시되는지 보여줍니다. 채팅에서 "연결 끊기"를 클릭하는 대신 브라우저를 닫을 때 "온라인"목록에서 사람들을 삭제하는 솔루션이 필요합니다. 이드의 생각을 할 수있는 또 다른 방법이 있다면 그것을 할 사랑하지만 지금은 내 cron 작업 이외에 좋은 해결책이 될 것 같습니다 – brybam

0

당신이 (플래시의 외부)을 HTML에서 자바 스크립트의 비트와 함께이 작업을 수행 할 수 있습니다를 onbeforeunload. 이 예에서는 jQuery's .unload()을 사용합니다.

<script type="text/javascript"> 
$(window).unload(function() { 
    $.ajax({ url: "clear_user_id.php"}); 
}); 
</script> 
관련 문제