사용자의 온라인 코드 판단
(1) 사용자가 브라우저를 닫거나 다른 페이지로 리디렉션
<br>function exit_init() {
<br>if(xmlhttp.readyState==4){
<br>if(xmlhttp.status==200){ //
<br>}
<br>else{
<br>alert("there was a problem accessing the server:"+xmlhttp.status);
<br>}
<br>}
<br>}
<br>// windows onbeforeunload , ,
<br>window.onbeforeunload=function () {
<br>//if(event.clientY<0||event.altKey) {
<br>exit_request = false;
<br>//
<br>if (window.XMLHttpRequest) {
<br>exit_request = new XMLHttpRequest();
<br>if (exit_request.overrideMimeType){
<br>exit_request.overrideMimeType('text/xml');
<br>}
<br>} else if (window.ActiveXObject) {
<br>try{
<br>exit_request = new ActiveXObject("Msxml2.XMLHTTP");
<br>} catch (e) {
<br>try {
<br>exit_request = new ActiveXObject("Microsoft.XMLHTTP");
<br>} catch (e) {
<br>}
<br>}
<br>}
<br>if (!exit_request) {
<br>alert("Your brower is not compatible the current opration.Please use the IE 5.0! ");
<br>return false;
<br>}
<br>var url='null.php?userid='+document.getElementById("userid").value;
<br>// exit_init, exit_init(); ();
<br>exit_request.onreadystatechange = exit_init;
<br>exit_request.open('GET', url, true);
<br>// IE
<br>exit_request.setRequestHeader("If-Modified-Since","0");
<br>//
<br>exit_request.send(null);
<br>}
<br>//}
<br>
설명:null.php는 사용자 상태를 하선으로 설정하는 데 사용됩니다
(2) 사용자가 본 사이트를 장시간 방문하지 않음
생각: 테이블 만들기 activestat, 속성은userid,lasttime,nowtime가 있습니다.사용자가 본 사이트를 한 번 열 때마다lasttime를 현재 시간now()로 변경하고 1분마다nowtime를 현재 시간으로 변경하여nowtime-lasttime가 20분보다 큰지 판단하고 크면 사용자 상태를 하선으로 수정합니다
<br>function test(userid){
<br>setInterval("offline('"+userid+"')", 60000 ); // 1
<br>}
<br>function offline(userid){
<br>var xmlhttp=false;
<br>try{
<br>xmlhttp=new activeXObject('Msxml2.XMLHTTP');
<br>}catch(e){
<br>try{
<br>xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
<br>}catch(e){
<br>try{
<br>xmlhttp=new XMLHttpRequest();
<br>}catch(e){}
<br>}
<br>}
<br>if(xmlhttp.readyState==4||xmlhttp.readyState==0)
<br>{
<br>xmlhttp.open('get','../user/include/offline.php?userid='+userid,false);
<br>xmlhttp.onreadystatechange=function(){
<br>if(xmlhttp.readyState==4){
<br>if(xmlhttp.status==200){
<br>//
<br>}
<br>else{ alert("there was a problem accessing the server:"+xmlhttp.status);}
<br>}
<br>}
<br>xmlhttp.send(null);
<br>}
<br>}
<br>
offline.php
//
$userid=$_GET["userid"];
pg_exec("update active_stat set nowtime=now() where userid='".$userid."';");
$result=pg_exec($dbconn,"select (nowtime-lasttime) as activetime from active_stat where userid='".$userid."'");
$str=pg_result($result,0,"activetime");
if(strlen($str)>16){
$array=explode(" ",$str);
$t=explode(":",$array[1]);
$t[0]=$t[0]+$array[0]*24;
$s=explode(".",$t[2]);
$t[2]=$s[0];
$y=((int)$t[0])*3600+((int)$t[1])*60+((int)$t[2]);
}
else{
$total_time=explode(".",$str);
$x=explode(":",$total_time[0]);
$y=((int)$x[0])*3600+((int)$x[1])*60+((int)$x[2]);
}
if($y>=1200){
pg_exec("update users set status='f' where userid='".$userid."';");
}
?>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.