컴퓨터 / Computer

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

공유지기 0 3,841 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

닥터트리코 안티헤어로스 바이오틴 탈모샴푸 500g
LED 큰 화면 학생 노인 컬러 패션 디지털 손목 시계
국내제작 소가죽 브이라인 우드굽 통굽 여성 샌들힐
루디 아로마틱센트 바스폼 바디워시 샤워젤 (로즈)
FAX L380SK 캐논 슈퍼재생토너 검정
스마트폰 내시경카메라 Y101-01 1m C핀 5핀 USB타입
갤럭시A40 IS 투명 젤리케이스 A405
ETST-54 차량용 자석 마그네틱 스마트톡 - 명화3
이케아 FINSMAK 핀스마크 미니 양초 캔들 유리 홀더
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
우드케어 오일스테인 woodcare 10리터
유진 6000 GR 그레이 목문 방문손잡이 침실용
코카콜라 제로 업소용 1.25L 12PET
정준산업 때르메스 요술때장갑 비품
폴더절수샤워헤드(백색) 각도조절 샤워기 샤워헤드 조절 가능
라인프렌즈 디저트 돔형 65 투명우산(미니니 레니니)

그랜드스타렉스 번호판가드 현대모비스 자동차 번호판
칠성상회
우신 박스테이프 백색 노랑 파랑 빨강 컬러50M 50개
칠성상회

맨위로↑