CI 묻고 답하기

제목 urldecode 와 rawurldecode 가 반대로 동작
글쓴이 Densetsu 작성시각 2013/03/13 15:14:30
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 22906   RSS

안녕하세요.
허접때기 초보입니다. ㅠㅠ
맨날 질문만 하네요 ㅎㅎ;

urldecode 와 rawurldecode 차이점은 아래 링크 참고하시면 이해가 되실겁니다.
http://www.happyjung.com/bbs/board.php?bo_table=lecture&wr_id=1012&page=20

여기서 질문 드리겠습니다.
서버문제인지 설정문제인지는 모르겠으나 urldecode 와 rawurldecode 가 반대로 동작합니다;
공백을 + 로 변경해줘야 하는 urldecode 요녀석은 공백 그대로 뱉어버리고
오히려 %와 관련있는 rawurldecode 요녀석이 + 로 변경해 주네요.. 허허..

의심스러운 리스트는
1. 언어버전 (PHP5 씁니다)
2. CI
3. 변수의 언어셋 (euc-kr 같은거죠 뭐..)
정도인데..

혹시 비슷한 상황을 겪으신 분들이 계신가해서 문의 드립니다!
아시는 분 있으시면 댓글 부탁 드립니다!
읽어 주셔서 감사합니다. (--) (__)

-----------------------------------------------
추가 :

반대로 표현을 했는데 rawurldecode 가 urldecode 의 역할은 하는데 urldecode가 rawurldecode 역할을 하는지는 테스트 안해봤습니다;

 다음글 다음 오픈 에디터 적용 메뉴얼 (2)
 이전글 select 질문 입니다. (4)

댓글

니삼 / 2013/03/13 15:40:09 / 추천 0
urlencode를 쓰셔야
공백을 +로 변경합니다 문자열은 % + 16진수로 바꾸구여
니삼 / 2013/03/13 15:42:06 / 추천 0
그리고 만약 encode를 잘쓰셨는대 저렇게 된다면
urlencode decode는 php 내장함수라 2,3번 설정은 문제 없을것 같구요
혹시 문제가 있다면 PHP에 있을것 같습니다. 
Densetsu / 2013/03/13 16:05:53 / 추천 0
니삼 //

관심 및 답변 너무너무 감사드립니다!
URL 용으로 사용하는 변수지만 실제는 POST 값으로 넘어온 데이터를 urldecode 하고 있습니다.
넘기는 POST 값은 제가 만들어서 넘기는게 아니라 업체측에서 넘기는 POST 변수값으로 사용하고 있구요.
메뉴얼 상에도 urldecode 로 되어 있더라구요;
혹시나 해서 rawurldecode 로 바꿔봤더니 되더라능;

메뉴얼로 써진걸로 봐서는 다른덴 잘 동작한다는 이야긴데.. 여기만 저런 증상이면..
말씀하신대로 PHP 쪽에 문제가 있는 듯도 합니다. ㅠㅠ

다른데서 테스트 한번 해봐야겠네요;
감사합니다!
변종원(웅파) / 2013/03/13 17:06:31 / 추천 0
php 함수에 그런 문제가 있다면 큰일나죠. 

업체에서 매뉴얼을 잘못 만들었거나 함수를 잘못 사용했을 것 같네요.
Densetsu / 2013/03/13 17:58:14 / 추천 0
웅파 //

항상 관심 감사합니다.
뭐 다른데 썼을 때는 이상 없으니 니네 문제다.. 이런게 보통이죠.
저도 그렇게 생각하지만; ㅎㅎ;

브라우저 문제인가 싶어서 익스,파폭에서도 해봤는데 마찬가지네요..
언어셋 문제인가 싶어서 iconv 로도 해보고.. 결론은 mission fail!!
POST라서 문제인건가.. 후후.. 모르겠다능;
rawurldecode 라도 먹으니 다행이긴 한데..
혹시나 유형이 다른 데이터가 넘어오면 인식 못할까봐 불안불안하네요 ㅋㅋ;

이런 경우를 처음 겪으니 CI 쪽에 설정문제인가 싶어서 문의 드렸던 것입니다!
보면 볼수록 대단하다고 느껴지는 CI입니당 ㅎㅎ
암튼 다시 한번 관심 감사합니다!
한대승(불의회상) / 2013/03/14 07:24:14 / 추천 0
Densetsu// 서버설정이나 CI설정으로 PHP에 영향을 줄 수는 없습니다.

근데 urldecode, rawurldecode를 쓰는 목적이 무언가요?

encdoding 되지 않은 문자열에 decode 하면 encde가 되었던가???

함 해봐야 겠네요. ^^

저도 예전에 encode 관련해서 비슷한 문제점이 있었는데 rawurlencode로 해결 했던 생각이 나네요.

메뉴얼은 urlencode와 rawurlencod의 차이점을 설명한 거네요.
Densetsu / 2013/03/14 08:52:49 / 추천 0
불의회상 //

관심 감사합니다!
가끔씩 함수 다시선언해 쓰는 경우도 있어서 CI는 기능이 많으니..
포함되지 않았을까 하는 마음에 질문 드렸던 것입니다 ㅎㅎ

넘어온 값에 공백이 있으면 + 시킬려고 urldecode 한거 같은데요.
메뉴얼 자체가 잘못 된거 같지는 않습니다.
제가 드린 URL에서나 다른 정보를 찾아봐도 urldecode가 맞으니까요 ㅎ
기냥 해보다가 문제가 있으면 그 때 다시 생각해봐야 겠네요 ㅎ

추가로 제가 드린 URL은 메뉴얼이 아니라 혹 모르시는 분들이 계실까봐 설명글을 링크해 놓은 것입니다 ㅋ;
감사합니다!
한대승(불의회상) / 2013/03/14 11:56:18 / 추천 0
Densetsu//
그럴수도 있겠군요.

보내주신 링크 클릭 해보니 지적하신대로 메뉴얼은 아니군요.

Densetsu 님이 encode와 decode의 기능을 혼동한 줄 알았습니다.

즐거운 코딩 되세요.
Densetsu / 2013/03/14 17:49:01 / 추천 0
불의회상 //

넵^^ 즐코딩 하세용~