컴퓨터 / Computer

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

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

미치코런던 베김이 없는 편안한 남성 신사 발가락양말0005gd
후끈이 넥워머 겨울 방한 목토시 등산 스키 후드 마스크 바라클라바 블랙 목토시 안면 모자 방한 마스크
여자경량패딩 자켓 여성패딩 경량 여자패딩자켓
포빅 방울 니트 털모자 귀달이모자 스키장모자 방울모자 왕방울모자 왕방울털모자 버킷햇 니트모자 니트모
한빛 전기 컨벡션 히터 1000 (HV-C1000)
USB A C to RS232 RS485 시리얼 컨버터
티피링크 BE3600 와이파이7 1기가 공유기 인터넷공유기
SanDisk sd카드 Ultra microSDXC UHS-I QUNR (128GB) 메모리카드
원홀주방헤드 싱크대샤워기 수도꼭지수전 싱크 코브라 주방 대수전부품셀프 대샤워설비 씽크 세면 용벽수전
인체공학적 책상 팔걸이 받침대 1P 책상거치대 팔보호
UV베이스 3.75L 목재 마루 코팅제 UV베이스 3.75L 1개
경서 마루광택기 바닥솔 패드 KP-14용
아워홈 연탄구이맛 고추장불고기 400g X 2개(냉동)
로얄캐닌 캣 키튼 2kg
테라오카 계란간장 300ml
시아스 화유 불맛기름 500g X 3개 매콤한 고추기름

젤펜 0.3mm 검정색 필기용 스타일 글씨잉크 펜
칠성상회
터틀왁스 자동차 광택왁스 슈퍼하드쉘 페이스트 왁스
칠성상회

맨위로↑