제목 | 쿠키 질문이요~ | ||
---|---|---|---|
글쓴이 | 앙마 | 작성시각 | 2013/05/23 10:23:43 |
|
|||
if($login_chk == 'on'){
set_cookie('cook_user_id', $id, 356 * 24 * 60 * 60);
set_cookie('cook_user_pass', $pass, 356 * 24 * 60 * 60);
set_cookie('cook_save_id', 'on', 356 * 24 * 60 * 60);
set_cookie('cook_save_login', 'on', 356 * 24 * 60 * 60);
}else if($login_chk == '' && $id_chk == 'on'){
set_cookie('cook_user_id', $id, 356 * 24 * 60 * 60);
set_cookie('cook_save_id', 'on', 356 * 24 * 60 * 60);
delete_cookie('cook_user_pass');
delete_cookie('cook_save_login');
}else if($login_chk == '' && $id_chk == ''){
delete_cookie('cook_user_pass');
delete_cookie('cook_user_id');
delete_cookie('cook_save_login');
delete_cookie('cook_save_id');
}
로그인을 할 때 로그인 입력 폼에는 아이디/비밀번호/아이디저장/자동로그인 이렇게 네가지가 있습니다 물론 로그인 버튼과 회원가입 버튼도 있고요 그런 상황에서 정보를 입력한 다음에 아이디 저장을 한 다음 로그인을 했을 경우 위쪽 else if($login_chk == '' && $id_chk == 'on'){
set_cookie('cook_user_id', $id, 356 * 24 * 60 * 60);
set_cookie('cook_save_id', 'on', 356 * 24 * 60 * 60);
delete_cookie('cook_user_pass');
delete_cookie('cook_save_login');
이 부분에서 유저 아이디하고 아이디저장 체크박스를 쿠키에 저장합니다 문제는 뒤쪽에 있는 시간으로 해놓을 경우 1년동안 쿠키가 유지되어야 한다는 말인데... 하루 정도 지나면 지워지는 것 같더군요;; 조언좀 부탁드립니다. 지금은 웹으로 어플 같이 자동로그인 같은 것을 만들려고 하는데ㅠㅠ 혹시 다른 좋은 방법이 있으면 그것도좀.. |
|||
다음글 | file헬퍼 - file삭제 에대한문의 (1) | ||
이전글 | uri 라우터 시 질문 (4) | ||
배강민
/
2013/05/23 10:30:15 /
추천
0
|
앙마
/
2013/05/23 10:39:28 /
추천
0
백강민//
조언 감사합니다 그런데 세션쿠키는 브라우져창이 닫히면 끝나는거 아닌가요?? 만약 브라우져가 닫혀도 사라지지 않는다면 다시 켰을 경우 무엇으로 그 PC에서 접속했다는 것을 인식하는지도 좀^^;; 쿠키 관련 자료를 더 찾아봐야겠네요... 좋곳 알고 계시면 정보좀;; ㅎ 그리고 위의 자료에서요 $keep_login은 자동로그인이 체크되어 있지 않을 때를 뜻하는 건가요?? |
risa
/
2013/05/23 10:39:29 /
추천
0
CI 쿠키가 믿음직 스럽지 못하다면 Jquery Cookie 쓰는 것도 한가지 방법. [간단 설치 간단 사용 눈에 익은 스크립트]
프레임워크에 쿠키 함수가 있는데도 따로 쓴적도 있었습니다. CI 쿠키는 별도로 CI 관련된 인증작업이나 잠시 저장할 데이터를 저장 했다가 CI 종료시 날려버리고 JC 는 계속 저장 하고 말이죠. 그런데 CI든 날코딩으로 하든 다른 라이브러리를 쓰든 결국 같은걸로 알고있습니다. |
앙마
/
2013/05/23 10:44:35 /
추천
0
risa//
저도 처음에는 jquery로 했었는데- _-;; 시간 조절이 안되더군요;; js받아서 사용도 해봤는데 에러만ㅠ_ㅠ 초보의 한탄입니다 |
risa
/
2013/05/23 10:50:31 /
추천
0
쿠키 시간 조절이 안되고 CI에서도 날라가고 한다면 서버셋팅을 한번 의심 해봐야 하지 않을까요?
PHP 날코딩으로 쿠키 만들어 보시고 테스트 해보세요. 어차피 뭘 이용하든 쿠키를 만드는건 PHP에 정의된 함수를 사용 합니다. phpschool 에 가서 쿠키 만 쳐도 한무더기 나옵니다. 혹은 CI 안쪽을 뜯어보세요. 자신이 찾는건 언젠가 다시 CI 안에서 발견 하게 된답니다 ( ..) 답 을 앞에 두고 멀리 돌고 돌아 찾아내 신나 하다 CI 안에서 발견 할때의 그 허망함이란... |
앙마
/
2013/05/23 12:50:54 /
추천
0
risa//
조언 감사합니다^^ |
배강민
/
2013/05/23 14:45:03 /
추천
0
CI에서 세션은 기본적으로 2가지를 제공합니다.
쿠키, DB 세션이라고 네이밍되어있지만, 일반적으로 생각하는 PHP native session 은 아니고요. 저 위의 config 부분에서 sess_expire_on_close 부분이 쿠키를 브라우저 닫을때 유지할것이냐 말것이냐입니다. CI 1.7 대까지는 위 옵션이 없었습니다. 맞나...흠.. 즉, 기본적으로 설정된 시간만큼 자동로그인이었죠. 근래 추가된 옵션으로 국내정서에 맞는 자동로그인 on/off 를 쉽게 구현할 수 있게 된것이고요. ID 저장과 같은 쿠키 액션은 실제 생성된 쿠키의 expire 를 한번 봐보셔도 좋을 것 같네요. |
자동로그인은
CI의 기본 세션(쿠키)를 이용하는 TapBBS의 경우
위 처럼 자동로그인을 체크하고 넘어왔을때 sess_expire_on_close 를 TRUE 로 바꿔서
config.php 의 설정을 변경합니다. 기본은 다음과 같이 되어있습니다.
자동로그인이라면 48시간 자동 로그인을 유지하고요, 아니라면 브라우져 닫을때 쿠키가 날라가는 방식입니다.