컴퓨터 / Computer

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

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

여성 레깅스 반바지 하이웨스트 슬림핏 쇼츠
제거 푸셔 큐티클 관리 도구 DD-11795 네일 손톱 양면
레츠큐어 부평초 개구리밥 98% 추출물 토너 150ml
금속테용 에어 코패드 코받침 교체 안경자국 실리콘
3단접이식스탠드선풍기 탁상용선풍기 미니선풍기
갤럭시노트20 방탄 강화 액정보호필름 2매
아이패드 미니6 지문방지 액정필름 보호필름 2매
LS전선 CAT.5E UTP 옥외용 케이블 200m (철심/단선/
이케아 GUBBARP 구바르프 손잡이 21mm 화이트 2개입
GB6152 무소음 메탈 스탠드시계 화이트 제조한국
유진 660 BSN 블랙실버 목문 방문손잡이 욕실용
이케아 DIMPA 딤파 캠핑 수납가방 65x22x65cm
업소용 반찬통 Full 스텐밧드 세트 4형 뚜껑포함
이케아 IKEA 365+ 강화유리 머그컵
이지오프 뱅 청크린 변기세정제 병형 2개입
손가락골무 작물 농사 수확 마늘 생강

알파 베이직 젯소 500ml
칠성상회
3M 전자계산기 SJC-830P
바이플러스

맨위로↑