회원로그인,인증에는 쿠키의 문제 회원로그인,인증에는 보통 3가지가 있다.
HTTP인증(아파치),쿠키,세션

보통은 쿠키를 많이 적용을 하지만
쿠키를 구울때
3번째 인자에 시간설정을 주어
쿠키 꺼지는 시간을 설정해놓으면
윈도우 시스템간의 문제때문에 로그인이 안되는경우가 있다.
setcookie("cookie","value",time()+300,"/");
이런식으로 할때
서버는 현재 타임스탬프 값에 300초를 더한 타임스탬프값을
사용자의 윈도우/쿠키 폴더에 저장하게 된다.
저장된 쿠키파일 내용을 보면 쿠키이름,쿠키 value 와 4가지의 타임스탬프
값이 저장이 된다.
여기서 문제는 현재 날짜와 사용자 시스템 날짜가 맞지 않으면
쿠키폴더에 저장을 못시켜 로그인이 안된다는사실..

간단히 윈도우 하단의 시간부분을 클릭하여 날짜를 2001년으로 바꾸는것 만으로 로그인이 되지 않는다.
물론 시간설정을 0으로 해놓으면 윈도우 시스템상의 문제도 없고,
쿠키폴더에 저장도 되지 않는다.
그러나 익스플로러를 끌때까지 쿠키로그인을 허용하는것은 PC방에서 하는경우가 많기 때문에 안좋다.

또 쿠키 를 구워 인증하는 부분에서
쿠키의 이름을 알면 겟방식으로 전달하면 쉽게 인증 받을수 있다.
이런문제는 HTTP_GET_VARS 나 POST 로 해결할수 있지만

위의 문제는 좀처럼 해결이 어렵다.

또 보통 로그아웃을 하는경우는
setcookie("cookie","",time()+300,"/");
이런식으로 하지만 이럴경우 현재날짜가 윈도우 날짜와 맞지 않을경우
값이 없으므로 deleted 란 값으로 변형이 된다.

이런경우에는 시간설정을 0으로 해놓으면 해결되지만 말이다.

위의것(시스템 날짜와 서버날짜가 맞지안으면 로그인이 안되는문제)
의 해결은 mktime() 함수로 타임스탬프 값을 윈도우 시스템 날짜와
맞춤으로써 해결이 가능하다.
그러나 윈도우 시스템을 알아내는 법중에는
자바스크립트로 간단히 알아낼수 있지만
setcookie 함수 위에 클라이언트로 출력이 되서 쿠키를 구울수가 없게 된다,.
결론은 PHP 함수중에서 윈도우 시스템 날짜를 알아내는 함수가 있으면
해결이 되지만
PHP 는 서버언어 이기때문에 이론적으로 불가능하다.

결국 이런이유로 로그인시 쿠키를 시간설정을 주어서 쓴다면
권하지 않는 바이다.

또, 시간설정을 주었을때 서버쪽 시간하고 윈도우 시스템 시간하고
정확하게 맞지않으면 시간설정되로 되지 않는다.
시간설정을 10분으로 하고,
서버날짜가 2000년 8월 20일 4시 라고 치고,
윈도우 시스템 날짜가 2000년 8월 21일 4시 라고 치면
평생 쿠키가 커지지 않는다.

결국 다른 인증 방법을 사용하게 되야하는 셈이다.

HTTP인증 같은경우는 회원판별이 어렵기 떄문에
권하지는 않는다.

마지막 남은 세션인증 같은 경우는 이렇다.
쿠키의 경우는 사용자의 시스템의 쿠키폴더에 저장되지만,
세션인증은 서버쪽에 남기때문에 시간이라든가의 구애를 받지 않는다.

제가 세션인증쪽은 경험이 없어서 잘은 모르지만,
세션인증은 시간설정 이라든가 사용자가 떠났을때를 감지하기가
어려울것 같다.
지금 이상황에서 글쓴이는 다른 홈페이지들은 어떤식으로 회원로그인인증
부분을 해결하고 있는지 상당히 궁금할 뿐이다.....


태초에 나는 개그이야기를 만들었다.
내말을 믿고 나를 따르면 천당,
내말을 믿지않고 나를 따르지 않으면 지옥,
나는 하늘나라(우주)에 사느니라.

그럼 난 외계인?