현재 접속자리스트에서.. > 그누3질답

그누3질답

현재 접속자리스트에서.. 정보

그누보드 현재 접속자리스트에서..

본문

현재 접속자리스트를 보면 회원만 나타나는데 게스트도  ip로 표시해 줄수 없나요?
회원이나 손님이 로그인 안한 홈페이지 방문자를 볼때는 127.*.0.1과 같은 형식으로 표시되고
관리자가 보면 127.0.0.1로 나오게 하도록 하고 싶습니다.

고수님들의 가르침 부탁드립니다...(_ _)
  • 복사

댓글 전체

아래 경로의 박갑성님의 팁을 수정하였습니다.
http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&sselect=wr_subject|wr_content&stext=member&soperator=0&page=1&wr_id=1276

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "DESIGN");

$html_title = "접속회원";

$mod = 6; // 6명이 출력되면 한줄 아래로 출력
?>

<table width=100% cellpadding=1 cellspacing=1>
<tr><td height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
<tr><td class='subject subjectbg ht arial' align=center>현재 접속자</td></tr>
<tr><td height=1 background='./<?=$cfg[bbs_dir]?>/line.gif'></td></tr>
<tr>
<td>
<table width=100% cellpadding=0 cellspacing=0><tr><td>
<?
include "./$cfg[bbs_dir]/gblayer.php";
$guest_count = 0;
$sql = " select a.mb_id, b.mb_name, b.mb_icon, b.mb_email, b.mb_homepage, b.mb_open, a.lo_ip
from $cfg[table_login] a left join $cfg[table_member] b on (a.mb_id = b.mb_id)
order by a.mb_id desc, a.lo_ip ";
$result = sql_query($sql);

for ($i=0; $row=mysql_fetch_array($result); $i++) {
if ($row[mb_id]) {
$tmp_name = gblayer($row[mb_id], cut_str($row[mb_name],12), $row[mb_email], $row[mb_homepage], $row[mb_open]);
} else {
if ($is_admin) {
$tmp_name = $row[lo_ip];
} else { 
$tmp_name = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.*.\\3.\\4", $row[lo_ip]);
}
}

echo "<table width=85% align=left><tr>";
echo "<td height=20><font color=777777>".(($rows)+$i+1).".</font> $tmp_name</td>";
echo "</tr></table>";
if ($i && $i%$mod==0) {
echo "</td></tr><tr><td>";
}
}
mysql_free_result($result);
?>
</table>
</td>
</tr>
</table>
답변 감사드립니다.

그럼 회원은 아이디로 나오고 게스트는 아이피로 나오게 할려면요?
저 소스를 보니까 회원이나 비회원이나 둘다 아이피로 나오는것 같은데요...ㅡㅡ;;
박갑성님의 아래링크의 팁을 참고하시어
http://sir.co.kr/?doc=bbs/gnuboard.php&bo_table=tiptech&sselect=wr_subject|wr_content&stext=member&soperator=0&page=1&wr_id=1276
(위링크소스에 오류가 있는데 아래쪽에 전종선님께서 수정해 놓은 것이 있습니다.)

소스중 다음 부분을 변경해주세요.
수정전 :
$tmp_name = gblayer($row[mb_id], cut_str($row[mb_name],12), $row[mb_email], $row[mb_homepage], $row[mb_open]);

수정후 :
//주석처리 $tmp_name = gblayer($row[mb_id], cut_str($row[mb_name],12), $row[mb_email], $row[mb_homepage], $row[mb_open]);
if ($is_admin) {
    $tmp_name = $row[lo_ip];
} else {    // 관리자가 아니라면 ip주소를 감춘후 보여줍니다.
    $tmp_name = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.*.\\3.\\4", $row[lo_ip]);
}
음냐리님 적용해보시고 혹시 이상있는지 알려주세요.
제가 테스트하는곳은 사용자가 없어서 오류 테스트가 힘들군요.
이론상으로 별문제가 없을것 같긴하지만.....
© SIRSOFT
현재 페이지 제일 처음으로