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

robot 이 검색한 검색어, 인기검색어에 등록 안되게 채택완료

미우지시언 11년 전 조회 4,806

할 수는 없을까요?

쓸데없는 인기검색어 때문에 죽겠네요.

 

감사합니다.

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

답변 3개

채택된 답변
+20 포인트
B
11년 전

무식하게 하자면 ㅋ search.php 101번째줄 

</p><p>//봇이 아닐경우에만 추가해주자 14-11-12</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$mobile_agent = '/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Opera Mini|Windows CE|Nokia|SonyEricsson|webOS|PalmOS)/';</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre">		</span>// preg_match() 함수를 이용해 모바일 기기로 접속하였는지 확인</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>if(preg_match($mobile_agent, $_SERVER['HTTP_USER_AGENT'])) {</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>//echo '모바일로 접속하셨습니다.'; </p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$agent = "모바일|".$_SERVER['HTTP_USER_AGENT'];</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>}else{</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>//echo $_SERVER['HTTP_USER_AGENT'];</p><p><span class="Apple-tab-span" style="white-space:pre">			</span>$agent = "PC|".$_SERVER['HTTP_USER_AGENT'];</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>}</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>$brow = get_brow($agent);</p><p><span class="Apple-tab-span" style="white-space:pre">		</span>if($brow != 'Robot'){</p><p>        // 인기검색어</p><p>        $sql = " insert into {$g5['popular_table']} set pp_word = '{$search_str}', pp_date = '".G5_TIME_YMD."', pp_ip = '{$_SERVER['REMOTE_ADDR']}' ";</p><p>        sql_query($sql, FALSE);</p><p><span class="Apple-tab-span" style="white-space: pre;">		</span>} </p><p>

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

답변에 대한 댓글 1개

미우지시언
10년 전
오 감사합니다. 현재 common.lib.php에
function insert_popular($field, $str)
{
global $g5;
$agent = strtolower($agent);
if (preg_match("/google|naver|yeti|daum|bing|yahoo|empas|msn|archive|mj12|baidu|yandex|ezooms|bot|slurp|scrap|spider|crawl/", $agent)) { }
else if(!in_array('mb_id', $field) ) {
$sql = " insert into {$g5['popular_table']} set pp_word = '{$str}', pp_date = '".G5_TIME_YMD."', pp_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql, FALSE);
}
}

해서 테스트 중인데 만약에 실패하면 블루엔젤님이 알려주신대로 해보겠습니다.
버전이 다르지만 알려주신거 응용해서 할 수 있을 거 같아요 ^^.

get_brow($agent) 대신에 get_os($agent) 하면 운영체계를 불러올 수 있는건가요?

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

11년 전

저도 궁굼해 하던 것이네요..

 

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

답변에 대한 댓글 3개

미우지시언
11년 전
접속자집계에서 Robot은 Robot이라고 인식이 되는걸 이용해서 한번 만들어 볼 수 있겠네요.
시도를 해봐야겠습니다.
미우지시언
11년 전
오, 되는 것 같습니다.
우선 대문검색창만 시험삼아 이렇게 바꿔봤습니다.
bbs/search.php 이구요.

$str = '(';
for ($i=0; $i<count($s); $i++) {
if (trim($s[$i]) == '') continue;

$search_str = $s[$i];
---------------------------- 요기부터 -----------------------
global $os; // 검색자가 Robot인지 아닌지 감별하기 위해 운영체계 검사
if ($os != "Robot") { insert_popular($field, $search_str); // Robot이 아닐 때만 검색어를 인기검색어에 넣는다
} // Robot 인기검색어 제한 여기까지(대문검색창)
--------------------------- 요기까지입니다 -------------------------
$str .= $op1;
$str .= "(";

제 자신이 Robot이 될 수 없어 정확하진 않지만
일단은 될 것 같습니다.
몇 시간 둬 보면 알게 되겠죠 ^^

잘 되는 것 같으면
common.lip.php 의 같은 부분도 똑같이 수정하면 되겠네요 ^^
미우지시언
11년 전
이걸로 안되네요 ㅠㅠ.
global $os가 아니라 get os로 잡아와야 되나...
현재 제 서버가 점검중이라 테스트가 안되네요.

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

우선은 mb_level로 비회원 검색은 등록이 안되게 바꿔놨는데요.

이것보다는 로봇 검색만 등록이 안됐으면 좋겠습니다.

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

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

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

로그인