분류사용할때 한글이 주소창에 그대로....

· 16년 전 · 1516 · 4
 흠.. 이상한 일이 발생했습니다.

제가 뭘 못보고 안한거 같은데...

일단 게시판 설정에서 분류를 서울|인천|대전|광주|부산|울산

이런식으로 써 넣고 list 페이지에서 분류를 선택했을때

select 창에 onchange="location='<?=$category_option?>'+this.value;"

라고 써있는 부분을 주소창에 %BA%CD 머 이런식으로 나오기 위해서 스크립트 뒤에

onchange="location='<?=$category_option?>'+encodeURI(this.value);"

요런식으로 바꿨습니다.. 문제는 여기서부터..

정렬을 시켰는데 아무것도 안나오길래  php 에서 urlencode 를 써서 두개를 비교했습니다..

일단 목록에서 카테고리명을 클릭했을때 주소창엔 %B4%EB%C0%FC%C1%A1 식으로 뜹니다.

같은 문자로 인코드 해봐도 똑같이 %B4%EB%C0%FC%C1%A1 << 요게 나오는데

onchange="location='<?=$category_option?>'+encodeURI(this.value);"

식으로 했을땐 %EB%8C%80%EC%A0%84%EC%A0%90 << 요롷게 바뀌어서 나오네요..

이유가 뭘까요?
|

댓글 4개

제가 알기로 자바스크립트의 encodeURL 동작이 조금다른데


<script>
function UrlEncode(str){
var ret="";
var strSpecial="!"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
</script>

위에것을 써서


UrlEncode(this.value) 로 변경해보세요
스크립트가 뭔가;;;
ㅠㅠ 제가 스크립트는 젠병이라..
그리고 스크립트에서 바로 이동되야 하는데 location.href나 location 이런 문구가 없이 리턴되면 그 인코딩된 문자만 ret에 들어가는거 아닌가요? ㅠㅠ자세히.. 부탁드려요 ㅠㅠ
아.. 참고로 euc-kr용입니다.
<?
$ca_menu = explode("|",$board[bo_category_list]);
for ($i=0; $i<count($ca_menu); $i++) {
echo "<option value=".urlencode($ca_menu[$i]).">$ca_menu[$i]</option> ";
}
?>

일단 이 소스로 해결했습니다...

그런데.. 이게.. 정렬이 되면 select 창에 분류명 그대로 남아있어야 하는데 그게 안되있네요 ㅠㅠ
우찌해야 될까요 ㅠㅠ
common.php 에서 mysql_real_escape_string()를 해줘서 생기는 문제 같습니다.
SQL Injection 막을려고 한거 같은데 위치가 잘못된듯...흠...
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
16년 전 조회 1,682
16년 전 조회 1,734
16년 전 조회 1,264
16년 전 조회 753
16년 전 조회 968
16년 전 조회 916
16년 전 조회 949
16년 전 조회 1,860
16년 전 조회 1,533
16년 전 조회 1,517
16년 전 조회 960
16년 전 조회 1,110
16년 전 조회 1,735
16년 전 조회 949
16년 전 조회 1,281
16년 전 조회 1,052
16년 전 조회 1,551
16년 전 조회 1,704
16년 전 조회 930
16년 전 조회 776
🐛 버그신고