컴퓨터 / Computer

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

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

심플 지퍼 스포츠백 ELG-222
맨투맨 루즈핏맨투맨 오버핏 박스티 남자맨투맨
하트 아이템 세트 꽃 큐빅 지비츠 여름 크록스 바다
미쟝센 퍼펙트 로즈퍼퓸 80ml 헤어세럼 -O
키보드 마우스 패드 팜레스트 푹신한 손목 받침대
bob 베이비덕 오리 에어팟 전용 실리콘 케이스 Airpods 1세대 2세대 무선 유선 에어팟프로
갤럭시S26울트라 케이스 진포켓 지갑 다이어리 S948
NT950XED-KC51S 노트북키스킨 B타입
4단 신발 정리함 수납 조립식 선반 현관 신발장
벨로 실버헤어라인 전기 전등 1로 2구 스위치
디귿철제 슬라이드 슬라이딩 수납함 소형
후라이팬 정리대 그릇선반 접시거치대 홀더 수납장 신발장 수납선반
네일아트 방지 하바리움 핀셋 세트 정전기 프라모델
마늘 깨갈이 갈이 미니 절구통 통후추 이유식 도자기
흑진주 돌절구 빗금절구 대형
한예지)키스해링키즈미용티슈정사각(230매x6입)

전선 정리 몰딩 60cm 자동차 꾸미기 차랑 익스테리어
칠성상회
더뉴아반떼 T8S 플래티늄실버 붓펜 자동차 카페인트
칠성상회

맨위로↑