컴퓨터 / Computer

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

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

포빅 방울 니트 털모자 귀달이모자 스키장모자 방울모자 왕방울모자 왕방울털모자 버킷햇 니트모자 니트모
AaO 발토시 발레워머 발레레그워머 레그워머 다리워머
BTM 지고트 액티베이티드 크림 100ml
슬리퍼 사무실 통굽 털 털실내화 퍼 여자 여성
SanDisk sd카드 Ultra microSDXC UHS-I QUNR (128GB) 메모리카드
스텐 수동 콧털 정리 깎이 코털 제거기 DD-11633
충격방지액션캠하드케이스(22x17cm)고프로가방
아이폰 맥새이프 코튼 컬러 소프트 범퍼케이스 iPhone16 15 14 플러스 13 프로 12 미니 11 XS 맥스 XR
원홀주방헤드 싱크대샤워기 수도꼭지수전 싱크 코브라 주방 대수전부품셀프 대샤워설비 씽크 세면 용벽수전
인체공학적 책상 팔걸이 받침대 1P 책상거치대 팔보호
UV베이스 3.75L 목재 마루 코팅제 UV베이스 3.75L 1개
경서 마루광택기 바닥솔 패드 KP-14용
동성 만능 크리너(150매) 만능물티슈 세정티슈 기름때
종근당건강 프로메가 알티지 오메가3 트리플 60캡슐
삼육김 식탁김 15g 30봉
변기 부속 세트 부품 양변기 수리 레바 부속품 y

어린이 골프놀이 뽀로로장난감 스포츠완구 실내놀이
칠성상회
WL 타이어 노후방지 익스트림 글로스 타이어스프레이
칠성상회

맨위로↑