更新根据以下建议。但仍然没有工作。有什么帮助吗?
我的公司使用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();
但我不知道该藏什么?
答案 0 :(得分:2)
您应该只在登录页面上验证/包含LDAP .. 如果成功设置$ _SESSION ['LDAP'] ['login'] = true;
并检查每一页。
if (!isset($_SESSION['LDAP']['login'] && $_SESSION['LDAP']['login'] !== true) {
header('Location: login.php');
exit; // dont forget the exit here...
}