TIP게시판

제목 주소등 인코딩해서 보내기
글쓴이 미드필드 작성시각 2010/03/17 02:33:37
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 21356   RSS
제목을 뭐라고 해야 될지 모르겠네요..

제가 만든건 아니고 외국 포럼 검색하다가 좋은 팁을 발견한거 같아서요.

http://codeigniter.com/forums/viewthread/144409/

인코딩

$uri_segments = substr(current_url(), strlen(base_url()));
redirect('login/' . strtr(base64_encode(addslashes(gzcompress(serialize($uri_segments), 9))), '+/=', '-_.'));

디코딩.

$redirect = unserialize(gzuncompress(stripslashes(base64_decode(strtr($redirect, '-_.', '+/=')))));

세그먼트값을 한글이나 다른 언어로 보낼때도 유용하게 사용할수 있겠네요..

핵심부분은 strtr(base64_encode(addslashes(gzcompress(serialize($uri_segments), 9))), '+/=', '-_.') 이거 같네요


 다음글 설정없이 GET으로 전달한 Query String 가져... (6)
 이전글 mPDF사용방법 (15)

댓글

변종원(웅파) / 2010/03/18 12:49:28 / 추천 0
base64_encode의 문제가 인코딩후 =, -가 들어가는 것이었는데 그걸 피하기 위해 저렇게 했네요.

저는 base64_encode(rawurlencode()) 로 사용중입니다. = 이게 해결되네요. ^^
변종원(웅파) / 2010/04/29 11:08:39 / 추천 0
base64_encode(rawurlencode()) 이걸로 해결안되는 특정 문자열이 있네요.
미드필드님이 올리신 걸로 사용해야겠습니다.
배강민 / 2010/04/29 11:28:54 / 추천 0
감사합니다... 흐.. 코멘트 남기려고 왔더니 웅파님도 남기셨네용....

좀더 심플한 방법이 있으면 좋겠지만... 감사합니다. 문제없이 동작하네요...

http://codeigniter-kr.org/qna/view/2785/page/1 요 질문과 같은 현상때문엥....

캄사합니다.
배강민 / 2010/04/29 11:49:24 / 추천 0

혹시나해서 붙인 리턴 url을 조작해보니

A PHP Error was encountered
Severity: Warning

Message: gzuncompress() [function.gzuncompress]: data error

Filename: controllers/member.php

Line Number: 39

위와 같은 에러가 떨어지네용...

그래서 @ 하나 붙였습니다. 그러면 강제 조작이면 null이 떨어지니 root로 이동하는..

try catch 로 해볼라다가.. 그냥...

 

   //rtnUrl
   if(!@$this->uri->segment(3)) 
   {
    $this->rtnUrl = '';
   } else {
    $this->rtnUrl = @unserialize(gzuncompress(stripslashes(base64_decode(strtr(@$this->uri->segment(3), '-_.', '+/=')))));
   }
에러처리 혹은 강제 @정도는 최소한 박아줘야게습니당...