테스트 사이트 - 개발 중인 베타 버전입니다

현재접속자 목록에서 채택완료

역같아들어가니 6년 전 조회 3,227

회원 접속페이지 이렇게 표출되는데...

 

여기서 로그인전 접속자는 ip로 표시되는데...

 

001   name 질문답변 2페이지

002 114.52.555.14 접속페이지 

 

이런 식으로요

로그인 하지 않은 

002와 같은 행을 아예 출력하지 않고 싶어요....

어떻게 해야 하는지요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
베원
6년 전

/bbs/current_connect.php 에서 보여지는 것을 물어보시는건가요? 그렇다면 아래와 같습니다.

 

해당 파일을 열어 아래 부분을 수정합니다.

$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             from {$g5['login_table']} a left join {$g5['member_table']} b on (a.mb_id = b.mb_id)             where a.mb_id <> '{$config['cf_admin']}'             order by a.lo_datetime desc ";

에서

$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             from {$g5['login_table']} a left join {$g5['member_table']} b on (a.mb_id = b.mb_id)             where a.mb_id <> '{$config['cf_admin']}' and mb_id <> ''             order by a.lo_datetime desc ";

로 수정

로그인 후 평가할 수 있습니다

답변에 대한 댓글 4개

역같아들어가니
6년 전
감사합니다~
그런데 lib/common.lib.php

} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);
여기서 디비에 로그인전 접속자도 저장하는 거 같습니다.
그리고 current_connect.php와 current_connect.skin.php 거쳐 그냥 불러오는 거 같구요,,

그래서
lib/common.lib.php 에서 로그인 회원만 insert시켜야 할거 같기도 하는데..
방법을 모르겠습니다.
베원
6년 전
@역같아들어가니
[code]
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);

// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");

// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
[/code]

[code]
if(isset($member['mb_id'])) {
if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);

// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");

// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}
}
[/code]
로 바꿔도 되겠네요.
이럼 말씀하신대로 로그인이 된 경우에만 insert 를 시킵니다.
처음 말씀드린 방법은 이미 insert 된 정보 중 로그인된 것만 가져오는 것이구요.
역같아들어가니
6년 전
마지막으로 알려주신거 적용했는데

if(isset($member['mb_id'])) {


}
로그인하지 않은 접속도 db에 기록됩니다.
왜 그러는지 모르겠습니다.
베원
6년 전
@역같아들어가니 코드 수정 전에 이미 기록되어있던 것 아닌가요? db에서 기존 데이터를 삭제한 후에도 그러시면 다시 확인해보겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

플라이
6년 전

/bbs/common.lib.php 파일에서 run() 함수에 로그인 테이블에 저장되는것을 회원 로그인후 표기 되도록 수정하시면 됩니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

역같아들어가니
6년 전
아 감사합니다.
그런데 플라이님 제가 프로그래머가 아니라..해당 코드를 어떻게 고쳐야 하는지 모르겠습니다.
그래서 current_connect.php에서 아무리해보려해도 안되었군요..
역같아들어가니
6년 전
function run()
{
global $config, $g5, $member;

// 현재접속자 처리
$tmp_sql = " select count(*) as cnt from {$g5['login_table']} where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
$tmp_row = sql_fetch($tmp_sql);

if ($tmp_row['cnt']) {
$tmp_sql = " update {$g5['login_table']} set mb_id = '{$member['mb_id']}', lo_datetime = '".G5_TIME_YMDHIS."', lo_location = '{$g5['lo_location']}', lo_url = '{$g5['lo_url']}' where lo_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($tmp_sql, FALSE);
} else {
$tmp_sql = " insert into {$g5['login_table']} ( lo_ip, mb_id, lo_datetime, lo_location, lo_url ) values ( '{$_SERVER['REMOTE_ADDR']}', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$g5['lo_location']}', '{$g5['lo_url']}' ) ";
sql_query($tmp_sql, FALSE);

// 시간이 지난 접속은 삭제한다
sql_query(" delete from {$g5['login_table']} where lo_datetime < '".date("Y-m-d H:i:s", G5_SERVER_TIME - (60 * $config['cf_login_minutes']))."' ");

// 부담(overhead)이 있다면 테이블 최적화
//$row = sql_fetch(" SHOW TABLE STATUS FROM `$mysql_db` LIKE '$g5['login_table']' ");
//if ($row['Data_free'] > 0) sql_query(" OPTIMIZE TABLE $g5['login_table'] ");
}

이 코드같은데요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인