2012-03-29 3 views
1

나는 PHP 기반 웹 사이트를 구축하고 있지만 이제 사용자에게 세션을 제공해야합니다. 즉, 사용자가 웹 사이트에 로그인하여 세션을 가질 수 있습니다. 그가 사인해야한다. 어떻게 이걸 이룰 수 있니?PHP로 세션을 어떻게 사용합니까?

+0

당신은 PHP는 세션 기능을 사용한다, 물론 여기에 설명되어 있습니다 http://php.net/manual/en/features.sessions.php – Gian

답변

0

을 로그 아웃 암호를 확인 사용자가 로그인하고 스크립트가 일반적으로 위의 세션 변수를 설정해야하면 사실 =합니다. 그런 다음 header()를 사용하여 dashboard.php 또는 photos.php와 같은 제한된 회원 페이지로 리디렉션하십시오. 일단 사용자가 로그 아웃하면 session_destroy() 함수를 사용해야합니다. 또한 모든 페이지에서 session_regenerate_id (true)를 사용하면 세션 하이재킹을 방지하기 위해 세션 ID 쿠키를 다시 생성하는 것이 안전합니다.

<?php 
session_start();//start session 
session_regenerate_id(true); 
if($_SESSION["auth"] != true) { 
header("Location: login.php"); // redirects to login if user is not logged in already 
} 
else { 
//has access 
if(!isset($_SESSION["timeout"])) { 
$_SESSION["timeout"] = time(); 
} 
else if(isset($_SESSION["time"])) { 
if($_SESSION["timeout"] - time() == 1800) { 
header("Location: login.php");//timeout incase no activity for 30min , 30min = 1800seconds 

} 

} 

} 

?> 
0

사용자 이름을 키로 사용하여 데이터베이스 또는 다른 데이터 스토어에 세션 관련 데이터를 저장하십시오. 따라서 사용자가 다시 로그인하면 데이터 저장소에서 데이터를로드하고 세션을 복원 할 수 있습니다.

CodeIgniter 또는 PHP의 내장 세션 관리와 같은 다른 모든 세션 관리 시스템을 영구 세션에 사용하지 않아야합니다.

+0

나는이 고급 주제 : – Gian

+0

어쩌면 내가 didn를인지 추측 의문점은 아니지만 세션이 훨씬 더 오래 지속될 수 있기를 바란다. –

2

모든 스크립트의 시작 부분에 넣기 session_start() 그런 다음 사용자와 암호의 데이터베이스를 만듭니다. 당신의 사용자가 로그인 할 때 자신의 사용자 이름과 암호를 확인하고, 그들이 일치하는 경우, 당신이 알고 있도록,이 값은 $에 _SESSION [ 'USER_ID를'] 읽을 수있는 모든 스크립트에서 세션

$_SESSION['user_id'] = $user_id; 

에 사용자 ID를 넣어해야 사람 이 사용자입니다.

는 [ "인증"] 당신은 $ _SESSION을 가질 수 사용로 세션

관련 문제