검색에서 아이디 제외했을 때 주소창에서도 막기 > 그누보드5 팁자료실

그누보드5 팁자료실

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

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

본문

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

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을 넣어도 검색이 되지 않고 홈페이지 메인으로 바로 가던지, 메세지 띄우고 홈페이지 메인으로 가게됩니다.

 

추천
0

댓글 4개

 특정 필드만 검색되고 다른건 다 막을 때는 아래와 같이 하면 됩니다. /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;
            }

전체 2,435 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT