컴퓨터 / Computer

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

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

티모르 여성용 멜빵 청바지 200339
웨이브 꼬임 디테일 에나멜 굽 포인트 샌들 슬리퍼
여성 여름 바람막이 숏 점퍼 간절기 아우터 자켓
스판덱스자외선차단장갑 운전장갑 여름 햇빛차단
삼성 노트북9 메탈 13 노트북 외부보호필름세트
갤럭시Z플립5 4 3 썸데이 컬러 범퍼케이스 ZFilp5 제
HC-0092 쫀득쿵 자동차 대시보드 논슬립차량용 거치대
(IT) 한성컴퓨터 P56 노트북 키스킨 키커버
이케아 GUBBARP 구바르프 손잡이 21mm 화이트 2개입
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
접이식선반 5단 원터치 폴딩 철제수납장 다용도선반 베란다 서재 거실 욕실 주방수납
국내산 초극세사 도넛 마사지 얼굴베개
코카콜라 업소용 슬릭 245ml 60캔 (30캔x2박스)
삼덕퀸스타 접는과도
목이길어 더 깔끔한 목이긴위생장갑 20매x50개 BOX
휴대용 폴딩 자바라 높이조절 접이식 아코디언 코끼리 의자

물고기 애벌레 원목 낚시놀이 장난감
칠성상회
반짝반짝 보석스티커(1000원X20개)
칠성상회

맨위로↑