현재접속자 - redis 확장판

불당   
   조회 14977   추천 0     비추천 0    

속도? 묻지 마세요.
회원정보 가져오는 것을 제외한 모든 처리가 메모리에서 이루어 집니다.

===
<?
include_once("./_common.php");

$g4[title] = "현재접속자";
include_once("./_head.php");

$list = array();

// redis일 때, 정보를 만들어줍니다.
if ($g4['session_type'] == "redis") {
    //redis_login();

    // redis일때만 redis login 관리를 쓴다.
    $redis_login = new Redis();
    $redis_login->connect($g4["rhost"], $g4["rport"]);
    $redis_login->select($g4["rdb"]);

    // 모든 key를 가져와서 g4_login DB에 넣어줍니다.
    $allKeys = $redis_login->keys($g4["rdomain"] . "_login_*");   // all keys will match this.
    $i = 0;
    foreach ($allKeys as $rkey) {

        $rdat = explode ( "|", $redis_login->get($rkey) );

        if ($redis_login->ttl($rkey) > 0) {
          $list[$i]['lo_ip'] = $rdat[0];
          $list[$i]['mb_id'] = trim($rdat[1]);
          if ($list[$i]['mb_id'] !== "") {
              $mb = get_member($list[$i]['mb_id']);
              $list[$i]['mb_nick'] = $mb['mb_nick'];
              $list[$i]['mb_name'] = $mb['mb_name'];
              $list[$i]['mb_email'] = $mb['mb_email'];
              $list[$i]['mb_homepage'] = $mb['mb_homepage'];
              $list[$i]['mb_open'] = $mb['mb_open'];
              $list[$i]['mb_point'] = $mb['mb_point'];
          }
          $list[$i]['lo_datetime'] = $rdat[2];
          $list[$i]['lo_location'] = $rdat[3];
          $list[$i]['lo_url'] = $rdat[4];
          $list[$i]['lo_referer'] = $rdat[5];
          $list[$i]['lo_agent'] = $rdat[6];
          $i++;
        } else  {
            // expire된 key는 삭제
            $redis_login->delete($rkey);
        }
    }

    // redis instance connection을 닫아줍니다.
    $redis_login->close();

} else {

    $sql = " select a.mb_id, b.mb_nick, b.mb_name, b.mb_email, b.mb_homepage, b.mb_open, b.mb_point, a.lo_ip, a.lo_location, a.lo_url, a.lo_agent, a.lo_referer
               from $g4[login_table] a left join $g4[member_table] b on (a.mb_id = b.mb_id)
              where a.mb_id <> '$config[cf_admin]'
              order by a.lo_datetime desc ";
    $result = sql_query($sql);
    for ($i=0; $row=sql_fetch_array($result); $i++) 
    {
        $list[$i] = $row;
    }
}

for ($i=0; $i < count($list); $i++) 
{

    if ($list[$i][mb_id]) {
        //$list[$i][name] = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
        $list[$i][name] = get_sideview($list[$i][mb_id], cut_str($list[$i][mb_nick], $config[cf_cut_name]), $list[$i][mb_email], $list[$i][mb_homepage]);
    } else
    {
        if ($is_admin)
            $list[$i][name] = $row[lo_ip];
        else
            $list[$i][name] = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row[lo_ip]);
    }

    $list[$i][num] = sprintf("%03d",$i+1);
}

$write_pages = get_paging($config[cf_write_pages], $page, $total_page, "?gr_id=$gr_id&page=");

echo "<script type=\"text/javascript\" src=\"$g4[path]/js/sideview.js\"></script>\n";

$connect_skin_path = "$g4[path]/skin/connect/$config[cf_connect_skin]";

include_once("$connect_skin_path/current_connect.skin.php");

include_once("./_tail.php");
?>
- opencode.co.kr -


제목Page 4/28
2013-11   11658   불당
2013-10   12334   불당
2013-10   14928   불당
2013-08   13009   불당
2013-06   14502   불당
2013-06   13623   불당
2013-06   13877   불당
2013-05   14978   불당
2013-05   14149   불당
2013-05   15230   불당
2013-05   15233   불당
2013-04   15842   불당
2013-03   15446   불당
2013-03   17750   불당
2013-03   15394   불당
2013-02   17597   불당
2013-05   55766   불당
2013-01   13952   불당
2013-01   14825   불당
2013-01   14135   불당