컴퓨터 / Computer

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

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

리얼 통가죽 가파치 벨트 남성용 청바지 소가죽 혁띠
리플러무지니삭스 시스루 심플 주름 무지 데일리 양말
여성 여름 롱 랩스커트 1P A라인 데일리 쉬폰 긴치마
초등 미니 슬링백 캐주얼 학생 여행용 크로스백
클리어하드케이스 투명케이스 갤럭시 A7 2016 A710
이케아YUPPIENALLE 위우피에날레 휴대폰홀더 열쇠고리
팔걸이마우스패드 - 대의자 책상 팔받침대
MIPRO호환 강의용 공연용 무선 헤드마이크 숲 학원
3T점착데코타일 유광 대리석 마블그레이 WBTI6-06
멀티트롤리5단 이동식선반 세탁실수납장 바퀴달린틈새
소형 수납함 4x5/플라스틱 투명 조립식수납장 서랍장
(나룸) JSC-003 복을부르는풍수_액자 벽시계(무소음)
오랄비 청소년칫솔 4단계 8세이상 4개 크로스액션
샘표 양조간장 501 500ML + 1.7L
코카콜라 업소용 500ml 24PET
조지아 크래프트 블랙 800ml x 12PET대용량

고무줄 넓은생 노랑 1000 0159 7x1 500 1개입
칠성상회
당기는 1초 완성 리본장식 9cm 포장재료
칠성상회

맨위로↑