Q & A

질답게시판

홈 > 회원포럼 > 질답/버그/제안
질답/버그/제안

접속자 아이피 문제입니다

18 사노라면 13 719

국가별 국기표기 적용방법으로

include_once(G5_PATH.'/geoip/geoip.inc'); 

$gi = geoip_open(G5_PATH."/geoip/GeoIP.dat",GEOIP_STANDARD); 


이렇게 불러와서 적용하면 관리자 접속자집계, 현재접속자에서는 잘 적용이 됩니다


문제는 뷰페이지에서 서명애드온에 

<img src="/geoip/<?=geoip_country_code_by_addr($gi,$_SERVER['REMOTE_ADDR'])?>.png" width="18" height="12">

적용시켜서 지켜보고 있는데 출력은 잘 되는데 저기 국기가 원글작성자 국기가 아니라 내가사용하는 아이피국기로 표기가 됩니다

예를들면 작성자는 한국에서 글을올렷는데 일본에서 게시글을 읽으면 저기 서명애드온에 국기가 게시글 보고잇는 사람의 국기일본으로 나타납니다


아미나 뷰페이지에서는 

<?php echo ($is_ip_view) ? '<span class="print-hide hidden-xs">&nbsp;('.$ip.')</span>' : ''; ?>  

이렇게 불러오면 작성자 아이피로 표기되는데 이코드에 국기를 넣으면 될것도 같은데 초보라서 안되네요 ㅠㅠ



이걸 서명애드온에서 원작성자 국기로 표기하는 방법 부탁드립니다

13 Comments
9 사노라가노라 2017.11.15 11:56  
<img src="/geoip/<?=geoip_country_code_by_addr($gi,$ip)?>.png" width="18" height="12">

로 변경 후 테스트
18 사노라면 2017.11.15 13:03  
감사합니다
테스트후 답변 올리겟읍니다
18 사노라면 2017.11.15 17:02  
이걸 지금까지 적용해볼려고 하는데 이미지가 엑박으로 나옵니다 ㅠㅠ
9 사노라가노라 2017.11.15 17:17  
https://sir.kr/g5_tip/4195
위와 유사한 소스 이용이라면 국가명 에 대한 것 까지 밖에 없는 것으로 판단 됩니다.

<?php
$cty = geoip_country_code_by_addr($gi, $ip);
echo $cty; // fr, kr, us 등 국가명 표현 출력 예상
?>
처리 후 출력 결과에 따른 표현으로 이미지 파일 업로드 후 해당 이미지.확장자 이용
<img src="업로드 경로/<?php echo $cty; ?>.png" width="18" height="12">

위 링크 본문 이미지로 보아 FR, US 등 INC 등에 반영된 국가명.png 이미지 필요 예상
18 사노라면 2017.11.15 17:52  
<img src="/geoip/<?=geoip_country_code_by_addr($gi,$ip)?>.png" width="18" height="12">
이코드로 뷰페이지에서는 예상대로 작성자 아이피가 고정되여서 출력이 됩니다
코멘트에서 정상 출력되는걸 확인됩니다

문제는 유독 애드온에서만 이코드가 먹히지않고 이미지가 엑박으로 나옵니다
9 사노라가노라 2017.11.15 19:20  
애드온은 view에 반영 되어 있어도 별개 입니다. 변수 처리 등이..

1. 서명 애드온 widget.php  상단
global $is_signature, $author, $signature, $at_href, $bo_table, $signaddon_board, $signaddon_cnt, $ip; // $ip 추가

2. 아래쪽 임의 영역에 추가
include_once(G5_PATH.'/geoip/geoip.inc');
$gi = geoip_open(G5_PATH."/geoip/GeoIP.dat",GEOIP_STANDARD);
$cty = geoip_country_code_by_addr($gi, $ip);
// $cty = geoip_country_code_by_addr($gi, $author['mb_ip']); // 가입시 아이피 이용이라면

3. 출력 위치에 출력 처리 -  국기 파일 이미지 업로드 등 추가 점검
<img src="업로드 경로/<?php echo $cty; ?>.png" width="18" height="12">
18 사노라면 2017.11.16 07:49  
상세한 답변 감사드립니다
적용하고 테스트해본 결과 이상없이 잘 출력됩니다
18 사노라면 2017.11.16 10:32  
지금 발견한건데 이걸 뷰페이지에 적용햇을때
어드민으로 로그인하면 이미지가 정상출력되는데 로그인하지 않거나 일반회원일때에는 엑박으로 나옵니다
어제까지 그냥 어드민으로 로그인하여 테스트해서 정상인줄 알앗는데 회원이 지금 전화와서 테스트해보니 이런 현상이 발생합니다
애드온은 어드민 회원 로그인하지 않을때 모두 정상 출력이 됩니다
9 사노라가노라 2017.11.16 10:53  
/bbs/board.php

// IP보이기 사용 여부
$ip = "";
$is_ip_view = $board['bo_use_ip_view'];
if ($is_admin) {
    $is_ip_view = true;
    if (array_key_exists('wr_ip', $write)) {
        $ip = $write['wr_ip'];
    }
} else {
    // 관리자가 아니라면 IP 주소를 감춘후 보여줍니다.
    if (isset($write['wr_ip'])) {
        $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $write['wr_ip']);
    }
}

- 관리자 아니면 두 번째가 하트 표시로 되기 때문
- view 스킨에서 별도 변수 처리 후 해당 변수 사용 등 진행
$ip_flag = $write['wr_ip'];
18 사노라면 2017.11.16 11:25  
감사합니다
$ip_flag = $write['wr_ip']; 이변수 적용하니 정상출력됩니다

죄송하지만 코멘트에도 적용할려면 어떤변수 사용해야 될까요?
9 사노라가노라 2017.11.16 12:25  
/bbs/view_comment.php
/bbs/view_comment.list.php
/bbs/view_comment.rows.php
/bbs/view_comment.page.php



$list[$i]['ip'] = $row['wr_ip'];  // 현재 내용으로 검색
$list[$i]['ip_plag'] = $row['wr_ip']; // 아래에 추가

해당 변수로 코멘트 스킨에서 해당 변수 적용 후 상황별 체크
18 사노라면 2017.11.16 12:45  
답변 찾앗읍니다
제가 착각하고 코메트부분에서는 리스트변수 적용해야 하는걸 생각못하고 ㅠㅠ
지금 적용하엿는데 내용 코멘트 애드온 비회원시에도 정상으로 잘 출력됩니다
많은 가르침 주셔서 감사합니다
1 우리마 01.14 19:54  
span class="ellipsis"><img src=/geoip/<?php echo geoip_country_code_by_addr($gi,$list[$i]['lo_ip'])?>.png width='18' height='12'> <?php echo $list[$i]['name']; ?></span>

45줄 코드 수정하세요
제목
최근 글
최근 댓글
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand