2026, 새로운 도약을 시작합니다.

방문자 목록 표시 코드 개선 [code by ChatGPT]

그누보드 관리자 페이지의 방문자 분석 페이지를 보는데, os, 와 브라우저 정보가 제대로 표시되지 않습니다.

os 정보와 브라우저 파싱함수인 get_os(), get_brow() 함수가 오래전에 만들어져서 최신 user-agent 를 제대로 처리하지 못하네요.

방문자 정보를 제대로 표시하기 위해서 visit.lib.php 코드중 일부를 개선해보았습니다.

/lib/visit.lib.php
[code]
function get_brow($agent)
{
    $agent = strtolower($agent);
    if (preg_match("/msie ([1-9][0-9]\.[0-9]+)/", $agent, $m)) { $s = 'IE '.$m[1]; }
    else if (preg_match("/trident\/.*rv:([1-9][0-9]\.[0-9]+)/", $agent, $m)) { $s = 'IE '.$m[1]; } // For IE 11
    else if (preg_match("/edge\/([0-9\.]+)/", $agent, $m)) { $s = 'Edge '.$m[1]; }
    else if (preg_match("/edg\/([0-9\.]+)/", $agent, $m)) { $s = 'Edge(Chromium) '.$m[1]; } // For Chromium-based Edge
    else if (preg_match("/firefox\/([0-9\.]+)/", $agent, $m)) { $s = 'Firefox '.$m[1]; }
    else if (preg_match("/chrome\/([0-9\.]+)/", $agent, $m)) { $s = 'Chrome '.$m[1]; }
    else if (preg_match("/safari\/([0-9\.]+)/", $agent, $m)) { $s = 'Safari '.$m[1]; }
    else if (preg_match("/opera\/([0-9\.]+)/", $agent, $m)) { $s = 'Opera '.$m[1]; }
    else if (preg_match("/opr\/([0-9\.]+)/", $agent, $m)) { $s = 'Opera(Chromium) '.$m[1]; } // For Chromium-based Opera
    else if (preg_match("/bot|slurp|crawler|spider/", $agent)) { $s = 'Robot'; }
    else { $s = '기타'; }
    return $s;
}
function get_os($agent)
{
    $agent = strtolower($agent);
    if (preg_match("/windows nt 10\.0/", $agent)) { $s = "Windows 10"; }
    else if (preg_match("/windows nt ([0-9]\.[0-9])/", $agent, $matches)) { $s = "Windows NT ".$matches[1]; }
    else if (preg_match("/windows nt/", $agent)) { $s = "Windows NT"; }
    else if (preg_match("/windows ([0-9]+)/", $agent, $matches)) { $s = "Windows ".$matches[1]; }
    else if (preg_match("/windows/", $agent)) { $s = "Windows"; }
    else if (preg_match("/android ([0-9\.]+)/", $agent, $matches)) { $s = "Android ".$matches[1]; }
    else if (preg_match("/android/", $agent)) { $s = "Android"; }
    else if (preg_match("/iphone os ([0-9_]+)/", $agent, $matches)) { $s = "iOS ".str_replace("_", ".", $matches[1]); }
    else if (preg_match("/iphone/", $agent)) { $s = "iOS"; }
    else if (preg_match("/ipad/", $agent)) { $s = "iPadOS"; }
    else if (preg_match("/mac os x ([0-9_]+)/", $agent, $matches)) { $s = "macOS ".str_replace("_", ".", $matches[1]); }
    else if (preg_match("/macintosh|mac os x/", $agent)) { $s = "macOS"; }
    else { $s = "기타"; }
    return $s;
}
[/code] 

프롬프트는

https://sir.kr/so_ai/27

에서 확인 하실수 있습니다. 

|

댓글 7개

감사 합니다.
감사합니다. ^^

댓글 작성

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

로그인하기

그누보드5 팁자료실

번호 제목 글쓴이 날짜 조회
공지 3년 전 조회 4,598
2741 3일 전 조회 111
2740 4일 전 조회 103
2739 1주 전 조회 209
2738 1주 전 조회 217
2737 1주 전 조회 181
2736 1주 전 조회 280
2735 3주 전 조회 281
2734 3주 전 조회 263
2733 1개월 전 조회 265
2732 1개월 전 조회 301
2731 1개월 전 조회 267
2730 1개월 전 조회 226
2729 1개월 전 조회 356
2728 1개월 전 조회 245
2727 1개월 전 조회 422
2726 1개월 전 조회 256
2725 1개월 전 조회 330
2724 1개월 전 조회 358
2723 1개월 전 조회 267
2722 1개월 전 조회 300
2721 1개월 전 조회 211
2720 2개월 전 조회 304
2719 2개월 전 조회 307
2718 2개월 전 조회 202
2717 2개월 전 조회 336
2716 2개월 전 조회 202
2715 2개월 전 조회 311
2714 2개월 전 조회 273
2713 2개월 전 조회 376
2712 2개월 전 조회 289
🐛 버그신고