채택완료

접속자집계에서 ip 앞에 국기 표시

2021-01-24 (일) 14:36:02 3,607

2883932198_1611466511.8098.jpgadm/visit_list.php의

56-58줄과

101줄에 

그누스터디의

작성자 ip 조회해서 접속 국가 이미지 표시 ip2nation 사용

https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=235&sfl=wr_subject%7C%7Cwr_content&stx=ip+%EA%B5%AD%EA%B0%80&sop=and

을참고해서 아래와같이 코드를 추가했습니다.

한데, 국기 이미지가 깨져 표시되네요.

어디가 잘못됐는지, 좀 바로 잡아주세요.

Copy
<?php

$sub_menu = "200800";

include_once('./_common.php');

 

auth_check_menu($auth, $sub_menu, 'r');

 

$fr_date = isset($_REQUEST['fr_date']) ? preg_replace('/[^0-9 :\-]/i', '', $_REQUEST['fr_date']) : G5_TIME_YMD;

$to_date = isset($_REQUEST['to_date']) ? preg_replace('/[^0-9 :\-]/i', '', $_REQUEST['to_date']) : G5_TIME_YMD;

 

$g5['title'] = '접속자집계';

include_once('./visit.sub.php');

 

$colspan = 6;

 

$sql_common = " from {$g5['visit_table']} ";

$sql_search = " where vi_date between '{$fr_date}' and '{$to_date}' ";

if (isset($domain))

    $sql_search .= " and vi_referer like '%{$domain}%' ";

 

$sql = " select count(*) as cnt

            {$sql_common}

            {$sql_search} ";

$row = sql_fetch($sql);

$total_count = $row['cnt'];

 

$rows = $config['cf_page_rows'];

$total_page = ceil($total_count / $rows); // 전체 페이지 계산

if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)

$from_record = ($page - 1) * $rows; // 시작 열을 구함

 

$sql = " select *

            {$sql_common}

            {$sql_search}

            order by vi_id desc

            limit {$from_record}, {$rows} ";

$result = sql_query($sql);

?>

 

<div class="tbl_head01 tbl_wrap">

    <table>

    <caption><?php echo $g5['title']; ?> 목록</caption>

    <thead>

    <tr>

        <th scope="col">IP</th>

        <th scope="col">접속 경로</th>

        <th scope="col">브라우저</th>

        <th scope="col">OS</th>

        <th scope="col">접속기기</th>

        <th scope="col">일시</th>

    </tr>

    </thead>

    <tbody>

    <?php

    for ($i=0; $row=sql_fetch_array($result); $i++) {

 

//국기 표시 4줄 추가

$row_ip = sql_fetch(" SELECT country FROM ip2nation WHERE ip < INET_ATON('{$row['wr_ip']}') ORDER BY ip DESC LIMIT 0,1 ");

$ip_flag = $row_ip['country'];

 

        $brow = $row['vi_browser'];

        if(!$brow)

            $brow = get_brow($row['vi_agent']);

 

        $os = $row['vi_os'];

        if(!$os)

            $os = get_os($row['vi_agent']);

 

        $device = $row['vi_device'];

 

        $link = '';

        $link2 = '';

        $referer = '';

        $title = '';

        if ($row['vi_referer']) {

 

            $referer = get_text(cut_str($row['vi_referer'], 255, ''));

            $referer = urldecode($referer);

 

            if (!is_utf8($referer)) {

                $referer = iconv_utf8($referer);

            }

 

            $title = str_replace(array('<', '>', '&'), array("&lt;", "&gt;", "&amp;"), $referer);

            $link = '<a href="'.get_text($row['vi_referer']).'" target="_blank">';

            $link = str_replace('&', "&amp;", $link);

            $link2 = '</a>';

        }

 

        if ($is_admin == 'super')

            $ip = $row['vi_ip'];

        else

            $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $row['vi_ip']);

 

        if ($brow == '기타') { $brow = '<span title="'.get_text($row['vi_agent']).'">'.$brow.'</span>'; }

        if ($os == '기타') { $os = '<span title="'.get_text($row['vi_agent']).'">'.$os.'</span>'; }

 

        $bg = 'bg'.($i%2);

    ?>

    <tr class="<?php echo $bg; ?>">

        <td class="td_category">

            <img src="<?php echo G5_IMG_URL ?>/flags/<?php echo $ip_flag; //hyun...국기표시 ?>.png"> 

            <?php echo $ip ?></td>

        <td><?php echo $link ?><?php echo $title ?><?php echo $link2 ?></td>

        <td class="td_category td_category1"><?php echo $brow ?></td>

        <td class="td_category td_category3"><?php echo $os ?></td>

        <td class="td_category td_category2"><?php echo $device; ?></td>

        <td class="td_datetime"><?php echo $row['vi_date'] ?> <?php echo $row['vi_time'] ?></td>

    </tr>

 

    <?php

    }

    if ($i == 0)

        echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없거나 관리자에 의해 삭제되었습니다.</td></tr>';

    ?>

    </tbody>

    </table>

</div>

 

<?php

if (isset($domain))

    $qstr .= "&amp;domain=$domain";

$qstr .= "&amp;page=";

 

$pagelist = get_paging($config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr");

echo $pagelist;

 

include_once('./admin.tail.php');

답변 1개 / 댓글 2개

채택된 답변
+20 포인트

저건 게시판 기준이고 접속 통계 페이지는 일단 $row['wr_ip'] 대신에 이렇게 해야 할 것 같은데요.

$row_ip = sql_fetch(" SELECT country FROM ip2nation WHERE ip < INET_ATON('{$row['vi_ip']}') ORDER BY ip DESC LIMIT 0,1 ");

답변에 대한 댓글 2개

너무너무감사합니다.
http://www.famfamfam.com/lab/icons/flags/ 국기 아이콘 링크가 안열리는데 어디서 받으면 될까요?

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