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

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

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

게시글 목록

번호 제목
22041
22035
22033
22028
22019
22006
22005
21995
21989
21978
21972
21961
21956
21944
21934
21932
21924
21922
21921
21910
21908
21897
21883
21881
21875
21854
21852
21851
21829
21817