2013-08-10 6 views
0

업데이트 아래 조언에 따라. 그러나 여전히 작동하지 않습니다. 어떤 도움이 필요합니까?LDAP 사용자가 PHP 세션을 사용하여 로그인 상태 유지

저희 회사는 Active Directory LDAP를 사용하며이 웹 사이트에 로그인하기 위해 사용자를 인증하기 위해 adLDAP를 사용하고 있습니다.

지금까지는 작동하지만 .. 페이지를 방문 할 때마다 다시 로그인해야합니다. 이것에 대한 해결책은 세션입니다. 하지만 로그인 한 사용자를 유지하기 위해 세션에 저장하기 위해 무엇을 알아낼 수 없습니다

login.php 페이지의 상단에 포함되어 있습니다.

auth.php

<?php 
//include LDAP authenication script 
require_once('LDAP/adLDAP.php'); 
    $adldap = new adLDAP(); 
    $username = $_POST['account']; 
    $password = $_POST['password']; 
    $authUser = $adldap->authenticate($username, $password); 
    $userinfo = $adldap->user_info($username, array("*")); 
    if ($authUser == true) { 
    $_SESSION['LDAP']['login'] = true 
    } 
?> 
<?php 
if (empty('LDAP')) session_start(); 
if (!isset($_SESSION['LDAP']['login'] && $_SESSION['LDAP']['login'] !== true) { 
header('Location: login.php'); 
exit; // dont forget the exit here... 
} 
?> 

은 지금, 때마다 나는 내가 로그인 내 인덱스 페이지 index.php를 방문, 내가 메인 페이지로 이동 해요 :

또한 모든 페이지의 상단에 나는이 있습니다. 그것은 완벽하게 작동합니다. 그러나 페이지를 새로 고치면 다시 로그인해야합니다.

페이지를 새로 고칠 때마다 로그인 할 필요가 없으므로 세션에 무엇을 저장해야합니까? 나는 그것을 알고

로 시작 :

session_start(); 

그러나 나는 그것이 무엇을 저장 몰라?

답변

2

성공한 경우 $ _SESSION [ 'LDAP'] [ 'login'] = true로 설정하면 로그인 페이지에 LDAP를 인증/포함해야합니다. ;

그리고 모든 페이지를 확인하십시오.

if (!isset($_SESSION['LDAP']['login'] && $_SESSION['LDAP']['login'] !== true) { 
    header('Location: login.php'); 
    exit; // dont forget the exit here... 
} 
+0

감사합니다. 나는 당신이 당신의 세션'LDAP'을 부르는 것을 이해하지만 왜 [로그인]을 사용하고 있습니까? 어디에서 왔는가? – Devin

+0

절대로, [login]을 true로 설정하고 true로 설정되어 있는지 확인합니다. 하지만 로그인 할 때 이것을 어떻게 설정합니까? – Devin

+0

if ($ adldap-> authenticate ($ username, $ password)) {$ _SESSION [ 'LDAP'] [ 'login'] = true} 인증 된 사실이 올 것 같아요. –

관련 문제