컴퓨터 / Computer

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

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

남성 아웃도어 바디백 유행 데일리 인기 베이지 가방
여성 통굽 편한 여름 슬리퍼 여름 실내화 10cm 3컬러
베르 화장품파우치 3color 여행용파우치 여행용 가방
와이어 없는 빅사이즈 엄마브라
이케아 PRODUKT 프로둑트 우유거품기 전동크리머 블랙
캥거 소음 측정기 층간소음 데시벨 소음계 KGA-350
K71GH 가상 7.1채널 RGB 게이밍 헤드셋 (반품불가)
대원 만능 스텐 믹서기 DWM-3500 십자날
접이식 나무탁자 쇼파옆 미니테이블 정원 마당 꾸미기
무타공 아트월 액자걸이 대리석 틈새 후크 셋쿡
루비 욕실코너선반3단
코텍 싱크선반 유압브라켓(소K9045) 쇼바 상부장 고정
정글모-망사
은플 락앤락 밥용기 냉동밥용기 3단 전자렌지밥용기
이케아 KUPONG 쿠퐁 탁상시계 알람시계 그린 4x6cm
키친아트 라팔 칸칸 완전분리 밀폐 도시락 750G

이케아 FRAKTA 프락타 카트용트렁크 73x35x30cm
바이플러스
모닝글로리 초등 1-2 14칸노트 초등학교 공책 쓰기
칠성상회

맨위로↑