컴퓨터 / Computer

그누보드에서 인기검색어 특정 글자 수 이상으로 보여주기

공유지기 0 3,847 2018.10.26 23:59


mod_security를 적용한 시스템에서는 SQL_injection 공격을 막기 위해서 특수 문자를 배제시키는데, 이 와중에 입력한 키워드가 아래와 같이 나온다.


 a

 A

 8

 1

 http

 .

 .

 .


정상적인 단어 검색이면 좋겠지만 저런 식으로 철자만 나오면 인기검색어를 보여줄때 문제가 많이 생긴다. 그래서 두 가지 방법을 생각해 보았다.


 1) 입력할때 특정 길이 이하는 버리기

 2) 보여줄때 특정 길이 이상만 보여주기


그런데 1) 방법은 mod_security에서 끊어버리기 때문에 작업을 하기가 애매했다. 그래서 2)를 선택했다. 


 파일 : popular.lib.php

 위치 : /lib


위 파일을 연다. 약 15라인 쯤에 아래 sql 문이 있다.


 $sql = " select pp_word, count(*) as cnt from {$g5['popular_table']} where pp_date between '$date_gap' and '".G5_TIME_YMD."'  group by pp_word order by cnt desc, pp_word limit 0, $pop_cnt ";


위를 아래와 같이 바꾼다. 


 $sql = " select pp_word, count(*) as cnt from {$g5['popular_table']} where pp_date between '$date_gap' and '".G5_TIME_YMD."'  AND CHAR_LENGTH(pp_word) > 1 group by pp_word order by cnt desc, pp_word limit 0, $pop_cnt ";


즉 "AND CHAR_LENGTH(pp_word) > 1" 이 조건을 하나 더 넣어서 최소 2 글자 이상 있는 검색어만 노출시키도록 했다. 사이트 특징에 따라서 2나 3을 쓸 수도 있다.

Comments

통굽 중년로퍼 스티치 할머니신발 엄마구두 키높이
신상 기본 군모 여자 남자 밀리터리
러블리 캐주얼 여성 도트리본 슬리퍼 뮬
사랑스런 쉬폰이중 빅카라 자켓형 반크롭 블라우스
FAX L380SK 캐논 슈퍼재생토너 검정
스마트폰 내시경카메라 Y101-01 1m C핀 5핀 USB타입
갤럭시A40 IS 투명 젤리케이스 A405
ETST-54 차량용 자석 마그네틱 스마트톡 - 명화3
몬스데코 리리소 자개 단 스탠드
이케아 FINSMAK 핀스마크 미니 양초 캔들 유리 홀더
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
우드케어 오일스테인 woodcare 10리터
지퍼손잡이 만능 지퍼고리 셀프수선 16개(대+소)
코카콜라 업소용 1.25L 12PET
일본 에코 미니 모종삽 (좁은형)
산리오 시나모롤 즐거운 모노 지퍼수저케이스

bob 차량용 비상탈출용 다용도 미니 해머 망치 절단기
칠성상회
그랜드스타렉스 번호판가드 현대모비스 자동차 번호판
칠성상회

맨위로↑