컴퓨터 / Computer

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

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

여성 키높이 메리제인 디자인 캐주얼 장화
배색 포인트 플랫 발레리나 데일리 슈즈 6SS
소가죽 스퀘어 토 메탈 장식 베이직 로퍼 힐 6SS
알롱제 A5 라인댄스화 발편한 댄스구두 가죽 라틴 스포츠댄스화
Ultra Dual Drive Go USB SDDDC3-512G-G46 512GB 블랙 Sandisk
갤럭시퀀텀3 케이스 카드지갑형 다이어리 SM-M536S
파인스킨 LG 그램16 16Z90R 16ZD90R 16ZB90R 16인치 전용 키스킨
TBZ 엑토 가죽 생활방수 휴대용 미니 마우스 패드 MP-64
대건통상틈새 지그재그 Z신발장 9단
안젤로 냉장고 자석 틈새 선반 소스 부착형 주방 철제
도어스토퍼/문 고정장치 말발굽 도어스톱 말굽 방문
4단 신발 정리함 수납 조립식 선반 현관 신발장
다농원)구수한메밀차 100T
종근당건강 프로메가 오메가3 트리플 654mg x 60캡슐
고려은단 식물성 퓨어 알티지 오메가3 기억력+ 60캡슐 3개
몽베스트 생수 유라벨 1L 36병

차 걸이형 후크 가방 쇼핑백 우산 후크 간편 탈부착
칠성상회
메쉬 망사 여행용 사각 주머니 필통
칠성상회

맨위로↑