셀렉트 체크박스 input value 값에 특수문자 입력 질문 다시 드려요
본문
다중카테고리 mc tools 소스입니다
원제작자분이 요즘 바쁘신지 질문에 답변이 없으신 듯 합니다 ㅠㅠ
<?php
/**
* 목록보기 스킨.
*/
use mc\Board;
/**
* 목록 분류형 출렷 기본 스킨.
* @param \mc\Board $mc_board
* @param array $params
* @return array 검색폼에서 넘겨야할 파람제출.
*/
return function (Board $mc_board, array $params) {
$inputs = $mc_board->getInputs();
$config = $mc_board->getConfig();
$search = array();
echo '<div style="">';
echo '<form>';
echo '<input type="hidden" name="bo_table" value="' . $config['bo_table'] . "추가url" '"/>';
// .......중략
마지막 줄이 체크박스 클릭시 input 값을 가져와서 url을 뿌려주는 소스인 듯 합니다..
위 추가url 자리에 텍스트를 더 넣으려 하는데
다른 일반 문자는 정상 출력되고 '%' 나 '=' 등의 특수문자만 주소창에 '%26', '%3D' 이런 식으로 출력되네요 ㅠㅠ
검색으로 encodeURIComponent 함수를 이용하는 방법도 있다고 찾긴 했습니다만 적용을 못하고 있습니다;;
url에 고정적으로 특문 포함 텍스트를 추가하고 싶은데 괜찮은 방법이 있다면 조언 부탁드려요 ㅠㅠ
!-->답변 2
주소창의에서 보내는 요청값에 특수문자가 있는경우 해당방식으로 변환되는것이 정상입니다.
주소창에서 특수문자는 구분자로써 용도가 있기 때문에 해당하는 특수문자가 값으로 전달될때는 다른형식으로 변환되게 되어있습니다.
URL에 사용되는 특수문자를 변환하지 않고 값으로 전달하는것은 불가능한걸로 알고 있습니다.
base64 같은것으로 인코딩을 해서 추가해주시고
받을때도 base64 로 디코딩을 해주시면 됩니다.
예) &aaa=가나다=+마바 즉 url 변수 aaa 의 값 가나다=+마바 에서 값부분을 인코딩해서
aaa=abcDeXadiesg 식으로 인코딩 해서 보내고 받아서 디코딩 하면 되요.
한가지 중요한 함정이 있는데.
base64로 인코딩되면 +/= 문자가 생기는 경우가 있으므로 이 문자들을 잡아내서 다른문자로 바꾸어 주어야 합니다. 받을 때는 다시 환원 시키고요.
정리하면 변수값을 base64로 인코딩하고 특문을 다른 문자로 치환해서 전송하고
받으면 치환된 특문을 환원시킨후에 base64로 디코딩해서 사용하시면 됩니다.
그런데 url로 보내면 자동으로 url 인코딩/디코딩이 될텐데??? 무슨짓을 하신것인지요???