2012-06-17 3 views
0

내 세션이 저장되지 않은 것 같습니다. 세션으로 사용자 ID를 저장하는 로그인 페이지가 있습니다. 그러나 페이지를 닫고 다른 페이지를 클릭하면 세션이 저장되지 않습니다.세션 및 포함 된 페이지

내 코드는 다음과 같습니다.

<?php 
if(!isset($_SESSION)){ 
     session_start(); 
} 
?> 

<!DOCTYPE html> <HTML> <HEAD> </HEAD> <BODY> 

<?php 
$page_content = 'startpage.php'; 

if (isset($_GET['link']) && !empty($_GET['link'])) { 
    $page_content = $_GET['link']; 
} 

include "$page_content"; 
include 'menu.php'; 
include 'footer.php'; 
?> 

내가 admin.php 불리는이 페이지를 사용하여 로그인 : 나는 메인 페이지는 다음과 같이 인덱스 .PHP라고합니다. 이 페이지에는 loggin 코드가 있습니다. 사용자가 마우스 오른쪽 사용자 이름과 암호를 작성했습니다 경우 이 발생합니다

$_SESSION['user_id'] = $user_id;    
print_r($_SESSION); 

위의 코드는 현재의 세션 변수를 보여줍니다. 그러나 다른 페이지를 한 번 클릭하면 변수가 비어있게됩니다. index.php를 하단에서

footer.php 페이지가 포함되어 있으며, 그것은 다음과 같습니다

<?php 
if(!isset($_SESSION['user_id'])){   
    echo "The sessions are not initiated. ";   
} 

if (empty ($_SESSION['user_id'])) { 
    echo "The sessions are empty. "; 
} 

echo "<a href='index.php?link=admin.php'>Administration</a>"; 
?> 

질문 세션을 확인하는 경우에 나는 두 넣어 가지고이 글에서. 로그인 한 후 다른 페이지를 클릭하면 if 세션에서 비어있는 세션이 시작되었음을 알 수 있습니다.

세션을 어떻게 작동시켜야합니까?

아마도 MySql을 사용하는 대여 데이터베이스를 사용해야한다고 덧붙여 야합니다. 당신이 $_SESSION를 사용하기 전에

+0

곳입니다 그렇지 않으면 제대로 작동하지 않습니다 페이지에 출력 할 아무것도하기 전에 호출해야합니다 session_start()의? – Drewdin

+0

내 메인 페이지에 있습니다 : index.php. 어떻게 든 그것은 내 질문에 보이지 않았다. – Olof84

답변

1

당신은 항상 그것을 시작해야합니다 또한

session_start() 

, session_start() 항상

+0

루크가 맞습니다. 또한 session_start(); 페이지 상단에 다른 항목이 있기 전에. 다른 코드, HTML, 공백 없음. –

+0

예 내 index.php 상단에 session_start()가 있습니다. 포함 된 페이지이기 때문에 admin.php와 같이 포함 된 페이지 상단에 session_start()를 삽입하면 출력 텍스트보다 먼저 나오지 않습니다. 한 번 시도했지만 출력 텍스트 이전이 아니라고했습니다. – Olof84

+0

죄송합니다. 내 질문에 내 session_start() 코드가 표시되지 않았습니다. 편집하여 session_start()를 맨 위에 작성한 것을 볼 수 있습니다. – Olof84

관련 문제