컴퓨터 / Computer

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

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

남자 여름 통기성 좋은 메쉬 운동화 슬립온 스니커즈
노와이어 앞후크 심리스브라 고탄력 통기성 브래지어 여성 속옷 언더웨어 브라자 언더웨어 심리스브라 여성
VIVADAY-SB209 발가락패션 장목 양말 5켤레색상혼합
남성 봄 V넥 와플 긴팔티 이너 아우터 간절기티셔츠
샤오미호환 미에어2 그레이 헤파필터 공기청정기필터
자석 거치대 보조 철판 스티커 판 56x37mm DD-12028
갤럭시노트9(N960) 강화유리 액정보호필름 2매
캠핑릴 1.5x20M 릴선(차단기) 릴전선 작업선 전기용
무타공 면도기 스텐 거치대 걸이
철제 더블 옷장 무타공 튼튼한 스탠드 옷걸이 행거
화장품 수납정리대 파우더룸 메이크업 브러쉬
철제 스탠드 옷걸이 행거 2단 높은 DIY 인테리어 헹거
방충망 먼지 제거 브러쉬
토르마린 자석 원적외선 발열 찜질 허리 보호대 밴드
스케이터 칫솔세트 마이멜로디 칫솔 케이스 세트 휴대용칫솔세트
WL 칠성 델몬트 오렌지100 오렌지주스 1.5L X 3개

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

맨위로↑