2014-06-16 3 views
0

내 index.php에 로그인 폼이 있습니다. 양식에 POST 메서드가 있으며 해당 작업이 인증 파일, 즉 action = "authenticate.php"로 전송됩니다. 이 인증 파일에서 사용자가 있는지 확인하고 세션을 시작한 다음 index.php로 다시 리디렉션합니다.session_start in php in index.php

예를 들어 index.php 콘텐츠를 변경하려면 로그인 양식은 없지만 사용자 계정 정보가 있어야합니다. 또한 내 index.php 맨 위에 session_start()를 추가합니다.

사용자가 내 페이지를 처음 방문 할 때 문제가 발생합니다. 사용자가 떠나서 로그인하지 않기로 결정하면 내 index.php의 시작 부분에 session_start()를 배치 했으므로 서버의 공간을 차지하는 빈 세션 파일이 붙어 있습니다.

이것은 나쁜 습관입니까? 내가 사용해야하는 또 다른 방법이 있습니까? 나는 이것이 의미가 있기를 바랍니다.

+1

세션이 설정되어 있는지 확인하기 위해'if (isset ($ _ SESSION [ 'session_name'])) {...}'를 사용하는 것이 가장 좋습니다. 그렇다면 무언가를하도록하십시오. 아닙니다. –

+0

빈 세션이 얼마나 걸릴 것으로 생각하십니까? 귀하의 서버가 286이 아니라면 문제가 보이지 않습니다. 이것은 90 년대가 아닙니다. 서버에는 처리 할 수있는 충분한 RAM이 있어야합니다. – developerwjk

+0

@developerwjk XT 롤 286조차도 그와 비교하여 재킷이었습니다. 나는 둘 다 가지고 있었다. –

답변

0

PHP는 더 이상 사용하지 않는 세션을 정리합니다.

일반적인 구성은 일정 비율의 요청에 대해서만 정리를 실행 한 다음 지난 30 분 동안 사용되지 않은 세션 파일을 정리하는 것입니다. 이렇게하면 요청이 거의 발생하지 않는 사이트에서 세션을 더 오래 살 수있는 기회가 남습니다. 따라서 예를 들어 비활성 상태 일 때 사용자를 로그 아웃해야 할 필요가있는 경우 세션 내에서 강제 로그 아웃 시간을 기록하는 것이 가장 좋습니다 15 분.

잘못 구성된 공유 호스팅에서는 다른 사이트 세션 파일에 액세스 할 수 있으며 반대의 경우도 마찬가지입니다. 다른 사이트의 시간 구조가 다른 경우 세션 파일 정리에 영향을 줄 수 있습니다.

하지만 모두 PHP가 세션 자체를 잘 처리합니다.