utf-8 환경에서 mysql_real_escape_string 관련 (검색어, 분류) 한글 깨짐 현상 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

utf-8 환경에서 mysql_real_escape_string 관련 (검색어, 분류) 한글 깨짐 현상 정보

utf-8 환경에서 mysql_real_escape_string 관련 (검색어, 분류) 한글 깨짐 현상

본문

linux + utf-8 환경에서 분류,검색어 등에 한글이 포함될경우
분류명이 "타이틀"일경우 "타이\틀" 처럼 한글이 깨는 문제에 관해
해결방안을 찾아보았습니다.

(개인적 참고용으로 올립니다. 그누보드4.34.10 기준이며, 오류가 있을 수 있습니다. : 적용시 주의)

./common.php
if (isset($sca))  {
    $sca_qq = mysql_real_escape_string($sca);  // _qq라는 꼬리말이 붙은 $sca_qq라는 새로운 변수 생성
    $sca = stripslashes($sca);  // $sca에는 슬래쉬가 제거된 문자열을 저장
    $qstr .= '&sca=' . urlencode($sca);
}

if (isset($sfl))  {
    $sfl_qq = mysql_real_escape_string($sfl);
    $sfl = stripslashes($sfl);
    $qstr .= '&sfl=' . urlencode($sfl);
}

if (isset($stx))  { // search text (검색어)
    $stx_qq = mysql_real_escape_string($stx);
    $stx = stripslashes($stx);
    $qstr .= '&stx=' . urlencode($stx);
}

if (isset($sst))  {
    $sst_qq = mysql_real_escape_string($sst);
    $sst = stripslashes($sst);
    $qstr .= '&sst=' . urlencode($sst);
}


./bbs/list.php
if ($sca || $stx)
{
    $sql_search = get_sql_search($sca_qq, $sfl_qq, $stx_qq, $sop);  // 변수명들에 _qq 꼬리를 붙여줌
 ....
}
....
$stx = get_text($stx);    // $stx = get_text(stripslashes($stx)); 이었던것을 수정해줌
include_once("$board_skin_path/list.skin.php");


./bbs/view.php
if ($sca || $stx) {
    $sql_search = get_sql_search($sca_qq, $sfl_qq, $stx_qq, $sop);  // 변수명들에 _qq 꼬리를 붙여줌......
.......
}


./skin/board/*/list.skin.php (모든 스킨들의 list.skin.php 파일)
<input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=stripslashes($stx)?>
위처럼 사용했던 것을 아래와 같이 변경해줌
<input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=$stx?>'>



오류, 보안 허점 지적해 주시면 감사하겠습니다.

추천
2

댓글 5개

전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

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