怎样实现统计在线人数状况?

解决方案 »

  1.   

    create table online_user
    (
    UID mediumint(8) unsigned not null primary key,
    login_time int(10) unsigned,
    last_action_time  int(10) unsigned
    )
      

  2.   

    last_action_time
    是MYSQL的函数么?
    统计在线情况和MYSQL有什么关系呢?
      

  3.   

    create table online_user
    (
    UID mediumint(8) unsigned not null primary key,
    last_action_time  int(10) unsigned
    )last_action_time记录用户上次动作时间,PHP中预设一个变量$logout_time=300,time()-last_action_time>$logout_time的用户即视为不在线
      

  4.   

    用戶多,性能不好!php有沒有別的方法,判斷用戶是否離線!!
      

  5.   

    為什麼session機制是這樣的:頁面有響就的時候其生命期限就會一直延長!它是否也一直在更新sessionID的最後一次訪問時間呢!!
      

  6.   

    B/S的程序作到很准确的在线人数是不可能的,http的连接就是这样的
      

  7.   

    last_action_time记录用户上次动作时间,PHP中预设一个变量$logout_time=300,time()-last_action_time>$logout_time的用户即视为不在线-----------------------------------------------------
    用当前时间减去用户上次动作时间大于预设的300就能视为不在线???
    我怎么还是不懂??
      

  8.   

    用当前时间减去用户上次动作时间大于预设的300就能视为不在线???
    我怎么还是不懂??
    --------------------------------------------------------------
    用户每次有动作就更新last_action_time字段为当前时间,300秒内没有任何动作即视为掉线,
    所以time()-last_action_time>300
      

  9.   

    <?php
    /*
    Description: 统计在线人数,本日访问人数,总访问人数,来访者IP,来访者操作系统和浏览器
    CREATE TABLE `wp_zwq_statistics` (
    `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `counter` INT( 15 ) NOT NULL DEFAULT '0',
    `date` VARCHAR( 20 ) NOT NULL DEFAULT '0',
    `flag` TINYINT NOT NULL DEFAULT '1',
    `timestamp` INT( 15 ) NOT NULL DEFAULT '0',
    `ip` VARCHAR( 40 ) NOT NULL DEFAULT '0'
    ) ENGINE = MYISAM ;
    INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` ) VALUES ('1', '0', '0', '2', '0', '0');
    INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` )VALUES (
    '2', '0', '0', '3', '0', '0');*/
    header("content-type:text/html;charset=gb2312");
    function wp_zwq_statistics() {
    //mysql_query("set names gbk");
    /*
     * flag = 1 : 记录在线者IP的记录的标志位(缺省)
     * flag = 2 : 记录总访问人数的记录的标志位
     * flag = 3 : 记录当日访问人数的记录的标志位
     */
    if(getenv('HTTP_CLIENT_IP')) {
    $onlineip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
    $onlineip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR')) {
    $onlineip = getenv('REMOTE_ADDR');
    } else {
    $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
    }
    $browser      = $_SERVER['HTTP_USER_AGENT'];
    $online       = zwq_usr_online($onlineip);
    $totalcount   = zwq_total_counter();
    $todaycount   = zwq_day_counter();

    //修改下面代码来决定你想显示的内容
    /* echo "当前在线人数: $online<br>
    本日访问: $todaycount 人次<br>
    总访问量: $totalcount 人次<br>
    您的IP地址是:<br>$onlineip<br>
    您使用的浏览器是:<br>$browser<br>"; */
    echo "$totalcount<br> $online<br>";
      //echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
    }
    /////////////////////////////////////////////////////////////////////////////////////////////////////
    function zwq_usr_online ($ip) {
    $timestamp = time();
    $timeout = time()-300;
    mysql_query("INSERT INTO wp_zwq_statistics (timestamp,ip) VALUES ('$timestamp', '$ip')") or die("Error in query: ". mysql_error());
    mysql_query("DELETE FROM wp_zwq_statistics WHERE timestamp<'$timeout' and flag=1") or die("Error in query: ". mysql_error());
    $result = mysql_query("SELECT DISTINCT ip FROM wp_zwq_statistics") or die("Error in query: ". mysql_error());
    $user = mysql_num_rows($result) - 1;
    return $user; }
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    function zwq_total_counter() {
    if (session_is_registered("tcount") == false) {
    session_register("tcount");
    }
    else {
    return $_SESSION["tcount"];
    }
    $result = mysql_query("SELECT counter FROM wp_zwq_statistics WHERE flag=2") or die("Error in query: ". mysql_error());
    $row = mysql_fetch_row($result);
    $_SESSION["tcount"] = $row[0] + 1;
    $count=$_SESSION["tcount"];
    mysql_query("UPDATE wp_zwq_statistics SET counter=$count WHERE flag=2") or die("Error in query: ". mysql_error());
    return $count;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////////////
    function zwq_day_counter() {
    if (session_is_registered("dcount") == false) {
    session_register("dcount");
    }
    else {
    return $_SESSION["dcount"];
    }
    $today = getdate();
    $result = mysql_query("SELECT date, counter FROM wp_zwq_statistics WHERE flag=3") or die("Error in query: ". mysql_error());
    $row = mysql_fetch_row($result);
    $date = $row[0];
    $_SESSION["dcount"] = $row[1];
    if (!strcmp($date, $today[mday].$today[month])) {
    $_SESSION["dcount"]++;
    }
    else {
    $_SESSION["dcount"] = 1;
    $date = $today[mday].$today[month];
    }
    $count = $_SESSION["dcount"];
    mysql_query("UPDATE wp_zwq_statistics SET counter=$count, date='$date' WHERE flag=3") or die("Error in query: ". mysql_error());
    return $count;
    }
    ?>
      

  10.   

    招聘PHP开发人员 
    招聘人数2-3名
    职位描述: 基于 PHP + MySQL 开发网站程序
    任职资格 :
    1、精通使用 Apache + PHP + MySQL进行WEB的开发;
    2、掌握UML,至少熟练掌握一种UML建模工具;
    3、具有文档编写能力,面向对象的编程思想,优良的编程风格和习惯;
    4、计算机相关学历;有两年以上的php脚本开发经验; 
    5、对软件开发工作有富有热情,工作责任心强,富于团队精神和敬业精神;待遇根据能力定薪金,具体待遇面议,保证不低于同行业水平,有意者请发电子邮件到Email:[email protected]
    工作地点:
    北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区]