2013-02-11 2 views
0

저는 초급 세션입니다. 성공적으로 로그인 할 수있는 경우 사용자에게 세션을 제공하고 현재 세션의 사용자 ID를 인식하는 데 사용되는 인증 시스템을 구축하려고합니다. 따라서, 경우 로그인이 성공 : 사용자가 탐색되는 모든 페이지에 포함 된 header.php 파일에모든 페이지에서 세션이 살아남지 못합니다.

$_SESSION['id'] = $username; 

I도 넣어으로 session_start()는. 그러나 세션을 할당 한 후 확인하려고하면

isset($_SESSION['id']) 

이 항상 false를 반환합니다. 특별히 세션을 유지하기 위해해야 ​​할 일이 있습니까? 고마워하고 미안하지만 그저 noobie 질문입니다.

+0

'error_reporting'을 사용하셨습니까? 브라우저가 저장하는 세션 쿠키는 무엇입니까? 세션 저장소가 서버에 채워지 는가? – mario

+0

'var_dump ($ _ SESSION)'은 뭐래? – Class

답변

1

모든 페이지의 상단에 session_start()으로 전화하십시오.

See the manual for basic usage :

세션은 고유 한 세션 ID에 대한 개별 사용자의 데이터를 저장하는 간단한 방법입니다. 이는 페이지 요청간에 상태 정보 을 유지하는 데 사용할 수 있습니다. 세션 ID는 일반적으로 세션 쿠키를 통해 브라우저로 전송되며 ID는 기존 세션 데이터를 검색하는 데 사용됩니다. ID 또는 세션 쿠키가 없으면 PHP는 새 세션을 만들고 새로운 세션 ID를 생성하는 것을 알 수 있습니다.

세션은 간단한 워크 플로를 따릅니다. 세션이 시작되면 은 전달 된 ID (일반적으로 세션 쿠키)를 사용하여 기존 세션을 검색하거나 세션이 전달되지 않으면 새로운 세션을 생성합니다. 세션이 시작된 후 PHP는 $ _SESSION 수퍼 글로벌을 모든 세션 데이터로 채 웁니다. PHP가 종료되면 은 $ _SESSION 수퍼 글로벌의 내용을 자동으로 가져오고 은 직렬화하여 세션 저장 핸들러를 사용하여 저장소로 보냅니다.

기본적으로 PHP는 session.save_handler로 설정된 내부 파일 저장 핸들러를 사용합니다. 이렇게하면 session.save_path 구성 지정 문에 지정된 서버 위치의 위치에 세션 데이터가 저장됩니다.

세션은 session_start() 함수를 사용하여 수동으로 시작할 수 있습니다. session.auto_start 지시문을 1로 설정하면 세션 시작시 요청시 자동으로 이 시작됩니다.

PHP가 완료되면 세션이 정상적으로 종료되고 스크립트를 실행하지만 session_write_close() 함수를 사용하여 수동으로 종료 할 수 있습니다.

예 1 변수를 $ _SESSION에 등록하는 중입니다.

<?php 
session_start(); 
if (!isset($_SESSION['count'])) { 
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count']++; 
} 
?> 
관련 문제