검색기능 버그 > 그누3질답

그누3질답

검색기능 버그 정보

그누보드 검색기능 버그

본문

인거 같은데 한번 해보세요...
1. 상단 검색 기능에 가나 를 입력 해서 검색하면 이상없이 검색됨.
    공백이 한개 들어간 가 나 를 입력해서 검색하면 이상없이 검색됨.
    공백이 두개 들어간 가  나 를 입력해서 검색하면 html 코드가 뿌려짐.
    결론, 공백이 두개이상 들어간 검색어를 입력하고 검색하면 html 코드가 뿌려짐.
2. 게시판 검색기능도 위와 같음.


두줄요약.
1. 버그인가요?
2. 잡아주세요. 플리즈~
  • 복사

댓글 전체

아래부분이 핵심이군요..
===================================== gnusearch.php ==========================================
// 3.36
// 검색필드에 , 가 있다면 ,' ', 로 만든다 concat()
$sselect = preg_replace("/,/", ",' ',", $sselect);

$op = "";
$str = " and ( ";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = explode(" ", $stext);
for ($i=0; $i<count($s); $i++) {
    // 3.36
    /*
    if ($sselect == "wr_subject|wr_content") {
        $str .= $op . " (wr_subject like '%$s[$i]%' or wr_content like '%$s[$i]%') ";
    } else {
        $str .= $op . " ($sselect like '%$s[$i]%') ";
    }
    */
    //$str .= $op . " ($sselect like '%$s[$i]%') ";
    $str .= $op . " (INSTR(LOWER($sselect), LOWER('$s[$i]')) > 0) ";

    $op = ($soperator) ? " and " : " or ";
}
$str .= " ) ";

$sql_search = " where (wr_datetime >= '$intime') " . $str;
if (!$srch_comment) {
    $sql_search .= " and (wr_comment = '0') ";
}
$sql_search .= " and wr_secret = '0' ";
=============================================================================================

이곳에서 공백을 처리하는 부분에서.. 좀 더 정교하게 처리해야 할것 같습니다.

$s = explode(" ", $stext);


이부분에서 공백을 무조껀 한개로 인식하도록 해야 하던지 유니크로 중뷁을 지워야겠죠..
카이루님의 경우는 임의로 해당 Get변수를 변경하신듯 한데 맞으신지?
&stext=%B0%A1++%B3%AA

여기에서 해당 문자열 인코딩사이 연산자 +가 하나 더 들어가있군요..

임의 수정인경우 까지 체크할려면 예외 처리가 되어있어야 할껍니다. :)

또한 중복으로 공백이 들어가는것은 해당 검색열에서 해당 공백을 연산자로 변경후,

그것을 다시 중복인지 여부를 체크하고, 그에 따른 예외 처리를 해야 할뜻 싶습니다.

갈수록 코딩이 점점 하기 어려워지네요..

옛날에는 그냥 글만 입력되고 보여두.. 대단하다고 느꼇었는데...
문자열 검색 및 치환 부분의 펑션을 조정해야 하겠군요..
다음 버젼에 반영되지 않을까? 생각합니다..
(급하신 분들은 직접 수정해서 써야 할 듯 하구요..)
© SIRSOFT
현재 페이지 제일 처음으로