테스트 사이트 - 개발 중인 베타 버전입니다

검색에서 아이디 제외했을 때 주소창에서도 막기

· 1년 전 · 1149 · 4

전체검색 또는 게시판 검색에서 아이디 제외하려면 보통 아래와 같이 진행합니다.

1) 전제검색이라면 skin/search 폴더의 검색스킨에서 mb_id 부분 제외

2) 게시판검색이라면 lib/get_data.lib.php 파일에서 function get_board_sfl_select_options($sfl) 또는 function get_qa_sfl_select_options($sfl) 함수에서 mb_id관련 부분 제외

를 하고 검색이 안된다고 생각을 하게 됩니다.

 

그런데, 전체검색 또는 게시판검색에서 제목으로 검색을 했을 때 주소창에 아래와 같이 나오게 됩니다.

https://sir.kr/g5_tip?sca=&sfl=wr_subject&stx=%EC%95%84%EC%9D%B4%EB%94%94

 

위에서 sfl=wr_subject 대신에 sfl=mb_id 를 넣고 stx에 아이디를 넣으면 검색이 되게 됩니다.

 

그래서, 추가 작업을 해야 합니다.

( 아래 방법이 정확한 방법인지는 모르지만 임시방편으로는 사용가능합니다. )

 

전체 검색은 bbs/search.php 파일에서 

$search_query = 'sfl='.urlencode($sfl).'&stx='.urlencode($stx).'&sop='.$sop;

위에 아래 내용을 추가합니다.

if(strstr($sfl, 'mb_id')) { echo "<script>location.replace('".G5_URL."')</script>"; }

또는

if(strstr($sfl, 'mb_id')) { alert("잘못된 접근입니다.", G5_URL); }

 

게시판 검색의 경우는 lib/get_data.lib.php 파일에서

function get_board_sfl_select_options($sfl) 또는 function get_qa_sfl_select_options($sfl) 중에 원하는 함수에서

$str = ''; 위에 아래 내용을 추가하면 됩니다.

if(strstr($sfl, 'mb_id')) { echo "<script>location.replace('".G5_URL."')</script>"; }

또는

if(strstr($sfl, 'mb_id')) { alert("잘못된 접근입니다.", G5_URL); }

 

그러면 전체 검색이나 게시판 검색에서 주소창에 sfl에ㅓ mb_id을 넣어도 검색이 되지 않고 홈페이지 메인으로 바로 가던지, 메세지 띄우고 홈페이지 메인으로 가게됩니다.

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 4개

1년 전

감사합니다

@너나잘해 조금이라도 도움이 되었으면 하는 바램입니다. ^^

감사합니다!!

@JeongwooLee 특정 필드만 검색되고 다른건 다 막을 때는 아래와 같이 하면 됩니다. /bbs/serach.php에서

        // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
        for ($k=0; $k<count($field); $k++) {
            $str .= $op2;
            switch ($field[$k]) {
                case 'wr_name' :
                    $str .= "$field[$k] = '$s[$i]'";
                    break;
                case 'wr_subject' :
                case 'wr_content' :
                    if (preg_match("/[a-zA-Z]/", $search_str))
                        $str .= "INSTR(LOWER({$field[$k]}), LOWER('{$search_str}'))";
                    else
                        $str .= "INSTR({$field[$k]}, '{$search_str}')";
                    break;
                case 'wr_subject||wr_content' :
                    //$str .= "1=0"; // 항상 거짓
                    if (preg_match("/[a-zA-Z]/", $search_str)) $str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
                    else $str .= "INSTR($field[$k], '$search_str')";
                    break;
                default :
                    echo "<script>location.replace('".G5_URL."')</script>";
                    break;
            }

게시글 목록

번호 제목
22349
22347
22312
22308
22303
22282
22269
22259
22253
22234
22221
22197
22191
22179
22151
22144
22135
22130
22118
22110
22098
22095
22076
22057
22053
22051
22050
22046
22044
22042