2013-05-11 4 views
0

내 세션 스크립트에 문제가 있습니다. 세션이 필요한 모든 파일에이 파일 호출 functions.php가 포함됩니다.PHP 세션 : 뒤로 버튼 문제

<?php 

session_start(); { 

    if(isset($_SESSION['username']) && !empty($_SESSION['username'])) { 
    return true; 
    } else { 
    return false; 
    } 

    } 

?> 

그리고 나서이 파일을 사용하여 로그 아웃합니다. logout.php 호출

<?php 
include('functions.php'); 
session_destroy(); 
// We redirect them to the login page 
header("Location: homepage.php"); 
die("Redirecting to: homepage.php"); 
?> 

사람은 사용자가 로그 아웃 링크를 클릭 할 때 그들이 회원 영역에 다시 갈 수 없어 다시 로그인 할 수 있도록 내가 그것을 해결하는 데 도움을 줄 수 있습니다.

+0

더 많은 정보를 제공해야합니다. 'loggedin()'은 어디에서 호출됩니까? 'user_id'는 어디에서 설정됩니까? –

답변

1

확인 :

내가 당신을 도울 수있는 앞의 질문을 발견했다. documentation 봐,

은 무엇 귀하의 경우에 발생, 다시 홈 페이지로 이동 할 때마다, 당신은 세션을 다시 시작 따라서 당신은 당신이 변수를 취소하지 않았다 이후 $_SESSION['username']에 액세스 할 수 있습니다을주세요 당신은 로그인하세요. 당신의 문제에 대한

솔루션

<?php 
include('functions.php'); 
session_unset(); // need to be called before session_destroy() 
session_destroy(); 
// We redirect them to the login page 
header("Location: homepage.php"); 
die("Redirecting to: homepage.php"); 
?> 

또는 당신은 단순히 logout.php 스크립트 내에서 $_SESSION['username']을 취소 할 수 있으며, 반드시 모든 세션을 파괴 할 필요가 없습니다.

희망 하시겠습니까?

0

로그 아웃하면 캐시를 지우고 다시 누르면 여전히 동일한 기능을 수행하는 브라우저 캐시 일 수 있습니다. 나는 문제가 당신은 단지 logout.php 내에서 세션을 파괴하지만, 세션 변수를 삭제하지이, 이었다 가정 Stopping the back button from exposing secure pages?