개발 Q&A

제목 웹 모바일 간 쿠키문제..
글쓴이 떠날거야 작성시각 2016/06/21 14:14:01
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 11885   RSS

웹 페이지에서 훅을 사용하여 모바일 여부를 검사하여 페이지 리다이렉트를 시켜주고 있습니다.

모바일 페이지 접속 시 쿠키를 생성하여 모바일 페이지에서 pc버전을 눌렀을 시

pc버전에서 쿠키값 여부를 판단하여 쿠키값이 존재하면 pc버전으로 아니면 모바일 페이지로 

리다이렉트 시켜주고 있습니다. 헌데 모바일에서 pc버전으로 갈 때 리다이렉트가 너무 많아

페이지가 로딩이 안됩니다. 무한 루프에 빠진 것 같은데 조건식을 보니 왜 무한루프가 된지 모르겠습니다..

codeigniter 3.0버전이고 config는

$config['sess_driver'] = 'files';

$config['sess_cookie_name'] = 'ci_session';

$config['sess_expiration'] = 7200;

$config['sess_save_path'] = $_SERVER['DOCUMENT_ROOT'].'session';

$config['sess_match_ip'] = FALSE;

$config['sess_time_to_update'] = 300;

$config['sess_regenerate_destroy'] = FALSE;

입니다.

hook에서 조건식은

if ($this->CI->agent->is_mobile()) {        

if(!isset(get_cookie('쿠키이름'))) {            

redirect('https://pc버전');        

} else {            

redirect('https://모바일버전');      

 }   

}

입니다.

조그마한 도움이라도 주시면 감사합니다ㅠㅠㅠㅠㅠㅠ

 다음글 php기본 질문입니다.. (1)
 이전글 ajax 질문. (4)

댓글

kaido / 2016/06/21 14:22:04 / 추천 0

순환오류 맞는것 같은데요?

 

가정 1 모바일 에서 해당 페이지를 봄.

 

조건 1. 모바일 기기 인가? yes.

조건 2.  쿠키 이름이 있는가? yes -> PC로 슝~

 

가정2. 모바일이지만 PC페이지로  가서 다시 체크.

조건1. 모바일 기기 인가? yes

조건2 쿠키가 있는가? yes -> PC로 슝~~~

 

반복... 맞나요?

떠날거야 / 2016/06/21 14:33:49 / 추천 0

kaido//

반복이 되지않고 무한 루프가 일어나지 않는 조건식 같은데,

모바일에서 pc버전으로 이동 시 리다이렉트값이 너무 많아 해당 페이지를 불러올 수 없다고 합니다.

제가 이해를 못하고 있는건가요.....?

배강민 / 2016/06/21 15:25:06 / 추천 0

무한이 맞겠습니다.

#01. 모바일이냐?

#02. 쿠키가 있으면 PC로 가라는 정상이겠는데

 

#01. 모바일이냐?

#02. 쿠키가 없냐?

#03. 모바일로 가라

#04. 모바일이냐?

#05. 쿠키가 없냐?

#06. 모바일로 가라

~ 무한 반복 ~ 여기가 문제가 될듯한 느낌이네요. 해본건 아니고, 코드만 본 냄새로요

떠날거야 / 2016/06/21 15:30:28 / 추천 0

배강민//

test 해본 결과 모바일 페이지로 리다이렉트는 문제가 없는데 pc버전으로 리다이렉트가 문제네요..

pc버전으로 리다이렉트 시키면 조건 상관없이 무한 리다이렉트가 되고 있습니다..

kaido / 2016/06/21 16:12:56 / 추천 0

자세히 보시면... 기기체크를 하는것과 쿠키가 있냐 없냐는 전혀 별개의 체크 입니다.

 

리다이렉트는 페이지를 호출해서 보여줌이 아니라 해당 페이지로 이동입니다.

즉 리다이렉트가 일어나는 순간 후킹으로 다시 체크를 시작 합니다.

후킹은 뭘로 오든 페이지에 접근 할때마다 체크를 합니다.

 

...응? 그러니깐 이론적으로 문제 없어 보이는데요? 어차피 체크 안 되는거 아닌가...?

라고 하신다면 리다이렉트 보내기 전에 alert 를 띄워서 현재 상황을 체크해 보세요.

쿠키 값과 현재 어디에서 체킹을 하고 있는지. 그럼 의문이 해결 될 것입니다.

 

떠날거야 / 2016/06/21 16:48:18 / 추천 0

kaiod//

배강민//

hook조건 문에서 pc버전으로 리다이렉트 시킬필요가 없었네요..

쿠키를 사용하는 궁극적 이유를 제가 까먹고 있었네요..

덕분에 문제 해결 및 한번 더 공부를 할 수 있었습니다.

감사합니다!