CI 묻고 답하기

제목 주소줄에 한글이 들어가면 다 깨져버리네요.
글쓴이 analogdk 작성시각 2014/09/03 13:42:07
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 12292   RSS
안녕하세요. 입문자입니다.
잘부탁드립니다.

ci너무 편하고 좋은데요. 생각지도 못한 벽에 부딪혔습니다.
부디 해결할수 있는 링크라도 알려주시면 감사하겠습니다.

게시물 보기라던가, 변수에 링크를 줘서 if문 조합으로 데이터 베이스에 있으면 출력하고 없으면 입력하는 페이지 만들기 등등 수많은 난관을 해처나가고 있었습니다.

그런데 segment값을 숫자가 아닌 한글로 지정하면 화면이 완전히 깨져버리네요.
영어나 숫자는 괜찬네요. 아. 설명이 힘드네요. 예를 들면
  • 123
  • asdf
  • 가나다
  • ㅇㄹㄴ
저런 제목들의 게시물 목록이 있다면 게시물의 제목을 세그먼트값으로 넘기면 숫자와 영어는 출력이 잘 되는데
한글이 섞여있는 제목은 "Trying to get property of non-object" 이런 에러를 내면서 페이지가 다 깨집니다.

아 너무 기초적인 질문같아서 부끄럽습니다만 꼭 좀 알려주세요.

아. 그리고 "안녕" 이라는 키워드 클릭시, 데이터 베이스에 있으면 그 데이터를 출력하고

데이터베이스에 없으면 "'안녕' 이라는게 없으니 추가하세요" 라고 해놨는데 
"'%EC%95%88%EB%85%95' 이라는게 없으니 추가하세요" 이렇게 나옵니다.

너무 모른다고 꾸짖지만 마시고 좀 알려주시면 복받으실거에요. 
감사합니다.

 
 다음글 php Unit __construct undefined... (2)
 이전글 코디 1.7.3 버전은 캐싱클래스 이게 없는거죠?.. (3)

댓글

Artz / 2014/09/03 13:54:43 / 추천 0
URL 인코딩으로 검색해보시길...
CI_ORL / 2014/09/03 15:06:36 / 추천 0
get으로 붙이는 거 아니라면 post로 넘기시는 것도 있으며,
꼭 get으로 써야 한다면, urlencode를 사용하시는 것도 추천합니다.
analogdk / 2014/09/03 16:42:12 / 추천 0
get으로 받는게 아닙니다. 

주소표시줄에는 "/index.php/artists/art_name/artistmusic/musician/디케이" 이런식으로 잘 표시가 됩니다.
한글을 16진수로 바꿧다가 다시 한글로 바꾸는 법을 알아봐야 겠네요. 답변 감사합니다.
darkninja / 2014/09/03 19:19:41 / 추천 0
한번만 넘겨주는거라면
post 로 넘겨 주면 되는데
검색페이징할때는 주소줄에서 넘겨주는데
한글 표시는 제대로 되는데 검색이 안됩니다.

포럼에서 검색해보시면
웅파님이 잘 설명한게 있습니다.
주소줄에서 받아서 변환하여 사용하고
다시 주소줄에 붙일때 변환하여 붙입니다.
미리 변환해서 보내줄수도 있습니다.
관련처리도 해야 겠죠...
그럼 삽질
$search_table = strtr(base64_encode(addslashes(gzcompress(serialize($search_table), 9))), '+/=', '-_.');

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

$search_text_url = strtr(base64_encode(addslashes(gzcompress(serialize($search_text), 9))), '+/=', '-_.');

 
letsgolee / 2014/09/03 22:32:48 / 추천 0
config.php 에서 다음으로 고치세요.
 
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-가-힣';
analogdk / 2014/09/05 11:10:12 / 추천 0
감사합니다.
analogdk / 2014/09/06 11:27:58 / 추천 0
Artz니 말슴대로
클릭을 하여 검색 변수로 주어야 할때와, 모델에서 쿼리에 검색질의를 할때도 urldecode(urldecode($id));를 사용하니까
깔끔하게 해결이 되었습니다.
주소줄에 표시되는 한글이 깨지지 않아서 쿼리에 질의를 할때도 한글인줄 알았으나 
var_dump로 찍어보니 urlencode상태여서 decode로 바꿔주는것만으로 해결이 되네요.
(주소줄에 표시시킬땐 지가 알아서 인코드 햇다가 디코드 하는듯)