리자님 그누보드 UTF-8 버전 버그
리자님 인젝션 때문에 mysql_real_escape_string 함수 common.lib.php 에 심으셨잖아요
UTF-8버전에서 아래 부분에서 mysql_real_escape_string 요것때문에
stx 필드 검색했을때 한글깨짐 현상이 나타나요
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode($stx);
$qstr .= '&stx=' . urlencode($stx);
아래처럼 바꾸고
$stx = mysql_real_escape_string($stx);
$qstr .= '&stx=' . urlencode(stripslashes($stx));
$qstr .= '&stx=' . urlencode(stripslashes($stx));
검색 들어간부분에 <?=stripslashes($stx);?> 로 바꺼야되는 아닌가요
그리고 admin.lib.php 하단에 $qstr 변수 재선언하는 부분이있어서
common.php 것을 같이 사용할수가없네요 기본에서는 빼야되는게 맞는것같은데요
$qstr = "";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 9개
에러가 나는 주소를 알려주십시오.
PHP Version 5.2.9 버전에서는 깨지고
PHP Version 5.2.9p2 여기서 는 안깨지더라구요
PHP Version 5.2.9 버전에 utf-8버전 설치되어져있는곳을 예제로 남겨드릴께요
3글자 이상 검색했을때 깨지는것을 보실수있습니다.
admin // 1228
http://vozzang.bizjeju.com/adm/tour_admin/g_airline_data_list.php?sfl2=airline_uid&stx2=&sfl=schedule_start_area&stx=%EC%A7%84%EC%97%90%EC%96%B4
아래 링크 보시면 utf-8기본 게시판상단인데요 재가 상단에 검색 이전 이후 넣어놨습니다.
http://vozzang.bizjeju.com/bbs/board.php?bo_table=test&sca=&sop=and&sfl=wr_subject%7C%7Cwr_content&stx=%EC%A7%84%EC%97%90%EC%96%B4&sop=and
원인을 알았으니 코드를 점검해 보겠습니다.
감사합니다.
bbs/list.php 파일 재일 하단에도 아래 코드가 심어져있습니다.
$stx = get_text(stripslashes($stx));
다른곳은 안되어져있구요
<input type='text' name='stx' id='stx' size='20' maxlength='20' class='text' value='<?=stripslashes($stx)?>' />