UTF-8 버젼의 그누보드에서 검색이 이상하게 깨저져서 2번째 페이지부터 잘 안나옵니다.
그 이유는 common.php의 mysql_real_escape_string 함수 때문 입니다.
그누보드의 모든 mysql_real_escape_string 함수를 다른거로 바꿔야 할 듯 합니다.
===
if (isset($stx)) { // search text (검색어)
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
}
common.php의 윗 부분에서 코드가 깨어지고 있습니다.
UTF-8 환경에서 mysql_real_escape_string 함수에 "퍼옴"이라는 단어가 들어가면 깨어집니다.
common.php의 아랫부분의 $sca, $stx 부분의 코드가 재작성 되어야 합니다.
보안에 대한 부분이 그누보드 전체에 대한 부분이라, 이부분은 관리자님이 수정해야 할거 같습니다.
if (isset($sca)) {
$sca = mysql_real_escape_string($sca);
$qstr .= '&sca=' . urlencode($sca);
}
if (isset($stx)) { // search text (검색어)
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
}
문제는 mysql_real_escape_string 함수가 UTF-8 환경에서 특정 한글을 깨어 버리는 것이고,
$stx, $sca를 쓰는 모든 곳에서 오류가 날 수 밖에 없습니다.
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
}
common.php의 윗 부분에서 코드가 깨어지고 있습니다.
UTF-8 환경에서 mysql_real_escape_string 함수에 "퍼옴"이라는 단어가 들어가면 깨어집니다.
common.php의 아랫부분의 $sca, $stx 부분의 코드가 재작성 되어야 합니다.
보안에 대한 부분이 그누보드 전체에 대한 부분이라, 이부분은 관리자님이 수정해야 할거 같습니다.
if (isset($sca)) {
$sca = mysql_real_escape_string($sca);
$qstr .= '&sca=' . urlencode($sca);
}
if (isset($stx)) { // search text (검색어)
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
}
문제는 mysql_real_escape_string 함수가 UTF-8 환경에서 특정 한글을 깨어 버리는 것이고,
$stx, $sca를 쓰는 모든 곳에서 오류가 날 수 밖에 없습니다.
===
TopSchool님의 해결 방안
- opencode.co.kr -