컴퓨터 / Computer

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

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

실크처럼 부드럽고 촉촉한 보습 케어 바디클렌져 750g
남자 여자 데일리 심플 다기능 포켓 서류가방 토트백
햇빛차단 스카프 마스크 ELS-088
빌리버스 남성 가죽 샌들 소가죽 슬리퍼 캐주얼 신발 BPO150
UTP 랜 케이블 1m 네트워크연결 인터넷랜선 랜선 네트워크구축 랜선연장
소니 NP-BX1 호환 LCD 듀얼 충전기 C타입5핀겸용
자광 콧털제거기 6512-고급코털깍기/코털정리기
갤럭시탭S9/S8/S7 전용 스타일러스 컬러볼펜 실리콘 펜슬 케이스
무타공 면도기 스텐 거치대 걸이
철제 더블 옷장 무타공 튼튼한 스탠드 옷걸이 행거
화장품 수납정리대 파우더룸 메이크업 브러쉬
철제 스탠드 옷걸이 행거 2단 높은 DIY 인테리어 헹거
디디샵 그린 실리콘 도마 - 소
농심 튀김우동 컵라면 소컵 62gx6개
농심 새우탕 컵라면 소컵 67g6개
송원 우리차 민들레차 80T (40Tx2개)

피에르가르뎅)리브라 만년필(PC3400FP 블루)
칠성상회
연습전용 펜돌리기 스피닝 젤리펜
칠성상회

맨위로↑