이 문제는 간단히 해결되는 군요.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

이 문제는 간단히 해결되는 군요.. 정보

제안 이 문제는 간단히 해결되는 군요..

본문

>
> G4 설치 하고 초기 화면 검색창에
> 검색어를
>
> 도움이 필요한 곳
>
> 이라고 검색하고 메인 화면으로 돌아 오면
> 인기 검색어에...
>
> 곳 도움閃 伍요塢
>
> 이렇게 표기 되어있구요...
> phpMyAdmin으로 g4_popular의 내용을 보면
>
> 도움閃
> 伍요塢
> 곳
>
> 역시 이렇게 저장 되어 있네요...
> 저의 mysql 설정에 무슨 문제가 있는건가요?
>

위 문제에 대해 여러가지 질문과 답변에 올라온 글들을 참조해 봤습니다...
제 수준에서는 감당하기 어려운 점이 있어 다른 방법이 없나 소스를 뒤적이다 보니..
문제는 bbs/search.php 스크립트 중에
    $search_str = strtolower($s[$i]);   
이 부분이 좀 수상적어 strtolower 함수를 쓰지 않고 해 봤더니 한글이 깨지지 않더군요...
문제는 영문 대문자와 소문자 검색이 좀 틀리게 나온다는 점이구요...
그래서
strtolower 함수를 찾아 보니 대략 해석은 않되지만...
====================================================================
strtolower
(PHP 3, PHP 4, PHP 5)

strtolower -- Make a string lowercase
Description
string strtolower ( string str )


Returns string with all alphabetic characters converted to lowercase.

Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Ä) will not be converted.

====================================================================
Note 부분에  해답의 열쇠가 있는듯 하군요...
http://man.phpschool.com/manual/en/function.strtolower.php
http://kr2.php.net/setlocale

결국 위 두개의 링크를 참조해서...
strtolower 함수가 사용되기 전에

setlocale(LC_ALL, 'ko_KR.eucKR');
위와 같이 로케일을 설정해 주었더니 전혀 깨지는 현상이 없더군요..
결국 서버의 문제라기 보다는 strtolower 함수 문제였던것 같습니다..

일단은 bbs/search.php 파일 맨 위에 아래와 같이 조치해 놓았습니다.
=====================================================================
<?
include_once("./_common.php");

setlocale(LC_ALL, 'ko_KR.eucKR');

if (!$stx)
    alert("검색어가 없습니다.");

$g4[title] = "검색 : " . $stx;
include_once("./_head.php");
=====================================================================

저도 초보라 더 좋은 방법은 잘 모르겠습니다...만...

검색시 한글이 깨지는 문제를 해결하기 위해 관리자님께서 검토해 주셨으면 합니다..

댓글 전체

common.php파일은 그누보드가 설치된 폴더 루트에 있고
setlocale(LC_CTYPE, 'C');는 아무데나 껴넣으면? 됩니다.
(원래 매뉴얼을 보니 기본값이라는데 왜 건드렸는지는 모르겠습니다.)
setlocale(LC_CTYPE, 'C'); 가 적당할 것 같습니다.
common.php에 넣어둔다든지 하면 괜찮을것 같은데요...
phpschool과 매뉴얼의 setlocale()을 참고했습니다.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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