2011-04-26 10 views
1

PHP를 서버 측 언어로 사용하고 Flex를 프런트 엔드로 사용하고 있습니다. 내 응용 프로그램에는 여러 수준의 사용자가 있습니다. 운영자의 온라인 상태에 따라 QC는 온라인으로 일부 직무를 지정합니다. 브라우저를 자동으로 닫을 때 사용자의 온라인/오프라인 상태를 업데이트하려고합니다. Flex는 PHP 서비스를 호출하지만 응답을받지 못합니다. DB (MySQL)가 업데이트되지 않습니다. 어떤 도움을 주셔서 감사합니다.사용자가 브라우저를 닫을 때 자동으로 로그 아웃합니다.

+0

얼마나 자주 업데이트해야합니까? 몇 분마다 충분할까요, 아니면 살아야할까요? – Mikecito

+0

안녕하세요 @Mikecito, 사용자가 로그인하면 로그 아웃 할 때까지 온라인 상태가 '1'이됩니다. 그가 브라우저를 직접 닫으면 DB에서 온라인 상태를 '0'으로 만들고 싶습니다. 온라인 상태를 업데이트하고 싶습니다. 세션 시간을 설정하지 않습니다. –

답변

7

내가 아는 한 이것은 불가능합니다. 가장 좋은 방법은 사용자가 데이터베이스에 로그온 할 때 datetime을 데이터베이스에 저장 한 다음 AJAX 스크립트를 실행하여 데이터베이스의 해당 사용자 시간을 업데이트하는 것입니다. 그런 다음 사용자가 datetime 이상인지 확인하여 사용자가 로그인했는지 확인할 수 있습니다.이 방법의 "해결 방법"을 조정할 수 있습니다 (예 : 5 분마다 확인).

+0

안녕하세요 @ cbh, 제발 자세히 설명해 주시겠습니까 또는이 문제에 대한 링크 또는 샘플을 얻을 수 있습니다. –

+0

@Naveen kumar Pavuturi - 당신은 당신의 문제로 더 분명해야 할 것입니다. 제 대답은 질문 제목이었습니다. 이 문제에 대한 설명은 Flex와 PHP (또는 PHP와 DB) 사이의 통신 문제를 지적한 것 같습니다. 문제의 설명 및 문제의 코드 스 니펫을 포함하여 질문의 설명을 수정하여 발생한 문제를 자세히 설명하십시오. – RANGER

0

브라우저가 닫히기 전에 서비스 요청을 받고 싶다면 Javascript가 플렉스/플래시 클라이언트에 메시지를 보낸 다음 flex를 사용하여 서버에 클라이언트/브라우저가 닫힙니다. 서비스 요청 (요청/게시)이 성공하면 플래시 클라이언트가 자바 스크립트에 응답하여 브라우저 닫기를 계속 진행합니다. 여기서주의해야 할 점은 브라우저에서 브라우저로 일관되게 자바 스크립트 블록을 가질 수 있다고 생각하지 않는다는 것입니다. 플래시가 서비스 호출을 시작하기 전에 브라우저가 닫힐 수 있습니다. 행운을 빕니다.

현재 ExternalInterface를 사용하여 콜백 수신기를 등록 할 수 있으며 콜백 수신기에서 참조 된 javascript 함수를 사용하여 javascript 신호 Flex를 사용할 수 있습니다.

0

감사합니다. 나는 AJAX에 대해 혼란 스러웠다. 그러나 마침내 끝났다. 브라우저를 닫는 동안 함수를 호출하고 있습니다. <body onunload='Logout();'>. 기능은 다음과 같습니다.

var xmlhttp = new XMLHttpRequest(); url = "http://*****.com/public/LogOutThruJS.php?UserID="+UserID+"&LogHistoryId="+LogHistoryId; function Logout() { xmlhttp.open("GET", url,false); xmlhttp.send(null); xmlhttp=null; delete xmlhttp;
}
저의 희망을 말합니다. :).

관련 문제