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

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

· 1년 전 · 1147 · 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;
            }

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168