2014-03-27 7 views
1

세션이 만료되면 로그인 페이지로 리디렉션하고 싶습니다. 지금 일어나는 일 :세션이 만료되면 로그인 페이지로 리디렉션

예를 들어 로그인하고 대시 보드에서 볼 때 오른쪽 상단 모서리에 사용자 이름이 표시됩니다. 하지만 2 시간 정도 아무 것도하지 않고 새로 고침하면 'username'속성에 NULL을 액세스하는 것이 불가능하다는 오류가 발생합니다. 로그 아웃했기 때문에 발생합니다 ...하지만 세션이 만료되면 어떻게 로그인 페이지로 리디렉션 할 수 있습니까?

나는 내가 만료 시간을 증가시킬 수 있지만, 내가 리디렉션 할 수 있습니다 방법을 모르는 ..

답변

6

검사를 사용자 이름이 세션

/* NATIVE PHP */ 
if (!isset($_SESSION['username'])) { 
    header('Location: login.php'); 
    exit; 
} 

/* Symfony Syntax - thanks @Touki */ 
if (!$request->getSession()->get('username')) { 
    return new RedirectResponse('login', 301); 
} 
+0

에 설정되어있는 경우 그리고 난 그냥이 붙여 넣기 방법을 알고 내 일반 레이아웃보기? – nielsv

+1

그냥하지 마세요. 심포니의 요청 추상화를 대신 사용하십시오. '$ request-> getSession() -> get ('username')'과'새로운 RedirectResponse ('login', 301)를 반환합니다. – Touki

+0

당신은 맞습니다 @ 토우 키 - 고마워요! 나는 내 게시물을 편집했습니다 – MaiKaY

관련 문제