컴퓨터 / Computer

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

공유지기 0 5,564 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

미쟝센 퍼펙트 로즈퍼퓸 80ml 헤어세럼 -O
와이투케이 빈티지 데님 수술 스커트 dm-sk03
ksr 라미 멘넨 스킨 브레이서 남성 2종세트
일리윤 히알루론 모이스춰 수분크림 100ml
고성능 서멀구리스 200g 대용량 고효율 열전도 CPU GPU 쿨러 써멀그리스 PC 컴퓨터 데스크탑 온도 쿨링
사운드바 스피커 BA R9 Britz
착한우레탄필름2매 내부 갤럭시Z플립4 SM-F721N
충전기 케이블 단선방지 보호캡 세트 귀여운 보관 케이스
4단 신발 정리함 수납 조립식 선반 현관 신발장
벨로 실버헤어라인 전기 전등 1로 2구 스위치
디귿철제 슬라이드 슬라이딩 수납함 소형
후라이팬 정리대 그릇선반 접시거치대 홀더 수납장 신발장 수납선반
마늘 깨갈이 갈이 미니 절구통 통후추 이유식 도자기
한예지)키스해링키즈미용티슈정사각(230매x6입)
멸치다시다 골드(백설 100g)
코카콜라 제로 업소용 슬릭 245ml x 30캔

차량용 메모리폼 등쿠션
칠성상회
또봇 미니 켄 자동차 변신 로봇 로보트 어린이 장난감 완구 선물
칠성상회

맨위로↑