주제: 로그인이 되지 않습니다.
다양한 경우에 로그인이 안되겠지만 아래와 같은 경우도 로그인이
되지 않는 경우입니다.( WEB기반 테터툴즈 설치 프로그램을 테스트해보면서 잘사용하지 않는 서버에 테터툴즈를 설치하고 관리자로 로그인을 할려고 하니 되지 않더라구요.)
원인
php.ini의 설정중 아래라인
...
session.auto_start = 1
...
웹서버가 시작함에 따라 자동으로 세션을 시작하기 위해서 위와 같이
설정을 합니다. 보통 저부분은 거의 셋팅을 하지않고 코딩시
session_start(); 라고 입력해줍니다.
But 리눅스 배포판에 따라서 default로 1로 설정되는 경우가 있습니다.
보통 session.auto_start = 0 으로 되어있습니다.
그럼 왜 이설정이 문제를 일으키느냐?
테터툴즈의 세션시스템에 대한 이해가 필요합니다.
테터툴즈는 session_set_save_handler 라는 함수를 통해 세션관리를
DB가 수행합니다. default는 파일을 이용해서 세션을 관리하죠
auto_start=1 설정에 따라 이미 헤더부분에서 session_start가 되어
는데 다시 session_set_save_handler를 적용하고 session_start를
실행하면서 headers already sent by ... 오류를 발생하면
서 세션이 생성되지 않습니다.
저도 쪽지보내기 및 현재 접속자정보의 관리를 편리하게 하기위해서
파일대신 DB를 이용하여 세션을 관리합니다.
이런걸 어떻게 아느냐.. 한번 유사한 경험이 있어서 ^^ Google에서
신나게 검색을 한적이 있거든요.
php 설정에서 아래와 같이 셋팅하고 오류메세지를 보니까 알겠더라구요
error_reporting = E_ALL
display_errors = ON
결론
웹호스팅 회사에 전화해서 php.ini설정을 아래와 같이 변경후
리스타트 해주세요 아니면 이글을 복사해서 담당자에게 메일로
보내줘도 되겠네요
php.ini
...
session.auto_start = 0
...
webthink (2006-04-24 14:09:14)에 의해 마지막으로 수정