컴퓨터 / Computer

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

공유지기 0 4,055 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

바로타 UN 팔각성냥 600개비 x(6개)성냥개비 불쏘시개
스텐 메이크업 브러쉬 파운데이션 스파츌라 M12738
원컬러힙색 힙색 슬링백 크로스백 스포티 가방
여성 얇은 골지양말 시스루 긴양말 롱삭스 여름양말
한일전기 HPF-300 고풍량배풍기
SONY 공DVD DVD-R 4.7GB 16x 10P DVDRW 공디브이디
팔걸이마우스패드 - 대의자 책상 팔받침대
3단접이식스탠드선풍기 탁상용선풍기 미니선풍기
이케아 YLLEVAD 윌레바드 미니액자 화이트13x18cm
우드케어 오일스테인 woodcare 10리터
3M 마루보호 패드 원형 혼합형 대용량 기획팩 162매입
이케아 FINSMAK 핀스마크 미니 양초 캔들 유리 홀더
남자 츄리닝 운동복 밴딩 무지일자 트레이닝팬츠 6849
(마루)오아시스변기커버 대-3533 (반품불가)
신세계푸드 불고기 치아바타 샌드위치 6팩+1팩 추가증
휴대용열쇠고리 5개입 열쇠고리 나침반 온도계

방우 시가 소켓 12V - 24V 겸용 카라반 캠핑카 DIY
칠성상회
라인플러스 화인 세필 화이트 보드마카 (12개입) 1다스 (검정색)
칠성상회

맨위로↑