robot 이 검색한 검색어, 인기검색어에 등록 안되게

robot 이 검색한 검색어, 인기검색어에 등록 안되게

QA

robot 이 검색한 검색어, 인기검색어에 등록 안되게

본문

할 수는 없을까요?

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

 

감사합니다.

이 질문에 댓글 쓰기 :

답변 3

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


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

오 감사합니다. 현재 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) 하면 운영체계를 불러올 수 있는건가요?

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

 

오, 되는 것 같습니다.
우선 대문검색창만 시험삼아 이렇게 바꿔봤습니다.
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 의 같은 부분도 똑같이 수정하면 되겠네요 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 123,673 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT