검색어중에서 회원 아이디를 원천봉쇄(?) 하려면 어떻게 해야하나요? 정보
검색어중에서 회원 아이디를 원천봉쇄(?) 하려면 어떻게 해야하나요?
본문
lib/common.lib.php 에서 mb_id를 비교하는 구문을 잘 입력한것 같은데 구동이 확실치 않은것 같아서요.
조언좀 부탁드립니다.
회원아이디가 있다면 검색db에 저장하지 마라(곧 인기검색어에 회원아이디가 나오면 안됨)를 구현하고 싶습니다.
lib/common.lib.php
조언좀 부탁드립니다.
회원아이디가 있다면 검색db에 저장하지 마라(곧 인기검색어에 회원아이디가 나오면 안됨)를 구현하고 싶습니다.
lib/common.lib.php
// 검색 구문을 얻는다.
//function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator=false)
function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and')
{
global $g4,$board,$urlencode;
$str = "";
if ($search_ca_name)
$str = " ca_name = '$search_ca_name' ";
$search_text = trim($search_text);
if (!$search_text)
return $str;
if ($str)
$str .= " and ";
// 쿼리의 속도를 높이기 위하여 ( ) 는 최소화 한다.
$op1 = "";
// 검색어를 구분자로 나눈다. 여기서는 공백
$s = array();
$s = explode(" ", $search_text);
// 검색필드를 구분자로 나눈다. 여기서는 +
//$field = array();
//$field = explode("||", trim($search_field));
$tmp = array();
$tmp = explode(",", trim($search_field));
$field = explode("||", $tmp[0]);
$not_comment = $tmp[1];
$str .= "(";
for ($i=0; $i<count($s); $i++) {
// 검색어
$search_str = trim($s[$i]);
if ($search_str == "") continue;
if ($field[$k] != "mb_id") {
// 인기검색어
$sql = " insert into $g4[popular_table] set bo_table='$board[bo_table]', mb_id='$_SESSION[ss_mb_id]', url='$urlencode', pp_word = '$search_str', pp_date = '$g4[time_ymd]', pp_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql, FALSE);
}
$str .= $op1;
$str .= "(";
$op2 = "";
for ($k=0; $k<count($field); $k++) { // 필드의 수만큼 다중 필드 검색 가능 (필드1+필드2...)
$str .= $op2;
// - 추가 . 이동 된 부분 시작 -
if ($field[$k] != "mb_id") {
// 인기검색어
$sql = " insert into $g4[popular_table] set bo_table='$board[bo_table]', mb_id='$_SESSION[ss_mb_id]',url='$urlencode', pp_word = '$search_str', pp_date = '$g4[time_ymd]', pp_ip = '$_SERVER[REMOTE_ADDR]' ";
sql_query($sql, FALSE);
}
// - 추가 . 이동 된 부분 끝 -
switch ($field[$k]) {
case "mb_id" :
case "wr_name" :
$str .= " $field[$k] = '$s[$i]' ";
break;
case "wr_hit" :
case "wr_good" :
case "wr_nogood" :
$str .= " $field[$k] >= '$s[$i]' ";
break;
// 번호는 해당 검색어에 -1 을 곱함
case "wr_num" :
$str .= "$field[$k] = ".((-1)*$s[$i]);
break;
// LIKE 보다 INSTR 속도가 빠름
default :
if (preg_match("/[a-zA-Z]/", $search_str))
$str .= "INSTR(LOWER($field[$k]), LOWER('$search_str'))";
else
$str .= "INSTR($field[$k], '$search_str')";
break;
}
$op2 = " or ";
}
$str .= ")";
//$op1 = ($search_operator) ? ' and ' : ' or ';
$op1 = " $search_operator ";
}
$str .= " ) ";
if ($not_comment)
$str .= " and wr_is_comment = '0' ";
return $str;
}
댓글 전체

자기 아이디를 검색하는걸 막는건가요??
if ($field[$k] != "mb_id") {
if ($field[$k] != $member[mb_id]) {
그렇다면 요렇게
if ($field[$k] != "mb_id") {
if ($field[$k] != $member[mb_id]) {
그렇다면 요렇게

자기 아이디 뿐만 아니라 모든 회원 아이디요