2012-05-24 7 views
1

사용자가 제공 한 페이지를 추적하는 몇 가지 $ _SESSION 변수가 있습니다. 이 방법을 사용하면 오류 메시지를보다 구체적으로 만들 수 있으므로 웹 응용 프로그램을 더욱 사용자에게 친숙하게 만들 수 있습니다. 사용자가 어떤 페이지에서도 오지 않으면 메인 페이지 상단에 "환영"메시지가 표시됩니다. 그러나 브라우저를 닫고 기본 페이지에 액세스하면 세션을 닫기 전에 링크 된 페이지에 해당하는 메시지가 표시됩니다. 이 제 기능입니다 :브라우저가 닫힐 때 세션이 만료되지 않습니다.

function come_from($from_page, $updates_occurred) { 
    $message = ""; 
    if ($updates_occurred == false) { 
     $message .= "Welcome to the User List.<br/>"; 
     $message .= "Select the user you wish to update, or add a new user. "; 
    } elseif ($from_page == "edit_user.php") { 
     $message .= "The user was successfully updated"; 
    } else { 
     $message .= "The user was successfully added"; 
    } 
return $message; 
} 

메인 페이지의 상단에, 나는 다음과 같은 코드가 있습니다

if (isset($_SESSION['updates_occurred'])) { 
    $updates_occurred = $_SESSION['updates_occurred']; 
} else { 
    $updates_occurred = false; 
} 

if (isset($_SESSION['come_from'])) { 
    $come_from = $_SESSION['come_from']; 
} else { 
    $come_from = NULL; 
    echo "got here"; 
} 


echo come_from($come_from, $updates_occurred); 

은 * 단지 사용자가 성공적으로 수정되었는지 여부를 추적 updates_occurred/이전에 추가를 페이지.

내 주요 관심사는 다음과 같습니다. 세션 변수를 사용하는 방식에 문제가 있습니까? 내 이해가 정확하다면 세션 변수는 브라우저를 닫을 때 만료되는 것으로 간주됩니다. 맞습니까? 미리 사람에게 감사 :

+0

죄송합니다 나는 매우 무례한 느낌을 닫 전체 브라우저를 종료해야

세션을 닫지 않습니다! – nv39

+1

전체 브라우저 (모든 탭, 모든 창) 또는 탭 만 닫았습니까? 좋든 나쁘 든간에 세션 쿠키는 대부분의 (모든?) 브라우저에서 계속 탭/창을 열어 놓은 상태에서 계속 살아남 으면 모든 것을 닫아서 파기해야합니다. – DaveRandom

+0

위대한 문제였습니다. 고마워요 :-) – nv39

답변

2

닫기 브라우저 탭 당신은 세션을

+2

나는 이것이 주석이어야한다고 생각합니다. –

+0

모든 의견이나 대답 ... 문제는 그에게 유용 할 것입니다. –

+1

* 그녀 ;;). 하지만 고맙습니다. 유용했습니다. 당신 말이 맞아요, 제가 브라우저를 닫을 때 "환영"메시지가 전송되었습니다! – nv39

관련 문제