컴퓨터 / Computer

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

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

브이넥 골지 니트 티셔츠 반팔티 무지 데일리 4컬러
닥터클레오 콜라겐 뽑아쓰는 마스크팩 30매입, 1개
여성 사각버클 패션 플랫슈즈 버클디자인 스웨이드 단화
여성 반팔 까실이 상하세트 잠옷 스판 쿨 냉감 아이스
롯데 블루투스CD포터블카세트 핑키770 CPD 라디오 등
BOSCH 원형브러쉬 GAS14.4V-LI GAS18V-LI 겸용
FAX L380SK 캐논 슈퍼재생토너 검정
스마트폰 내시경카메라 Y101-01 1m C핀 5핀 USB타입
LED 전구 T 벌브 램프 40W 전구색 E26 비츠온
NEW 페인트 부자재세트 DIY 페인트도구 셀프페인팅 페인트용품
선반 수납선반 다용도 선반 조립식 정리함 8단 민트
실내 환기 먼지 차단 방충망 나노윈도가드 창문형
롯데 델몬트 망고 드링크 190ml 32팩
바우와우 혼합Cut 350g (강아지 간식)
폼폼푸린 프레시 수영가방
동서 카누 미니 마일드 로스트 아메리카노 9g

바른키즈 눈송이 블럭 200pcs
칠성상회
조소냐 아티스트 아크릴물감 75ml 시리즈 1
칠성상회

맨위로↑