LDAP Fetch Employee ID с использованием переполнения стека

Я пытаюсь получить идентификатор сотрудника пользователей в Active Directory, используя LDAP PHP. Я только что добавил поле Id сотрудника, используя скрипт vb для пользователей на сервере, и могу видеть там employeeID на AD.
Но когда я пытаюсь получить идентификатор сотрудника для того же пользователя, он не отображается, в то время как остальные атрибуты отображаются. Ниже мой код.
Я новичок в этом. Любая помощь будет оценена.

enter code here

<?php
$partialState =  $_POST['partialState'];ini_set('display_errors', 0);
error_reporting(E_ERROR | E_WARNING | E_PARSE);

if(!empty($_POST['partialState'])) {
$username1="****";
$password1="*****";
$adServer = "ldap://*******";
$ldap = ldap_connect($adServer);
$username = $username1;
$password = $password1;
$ldaprdn = '***' . "\\" . $username;
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Could not set      ldap protocol");
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);

$bind = @ldap_bind($ldap, $ldaprdn, $password);if ($bind) {
echo "binded";

$dn = "DC=***,DC=**,DC=**" ;$filter= "(&(objectCategory=person)(displayname=*$partialState*)(employeeID=*))";

$justthese = array("displayname","department" , "title",  "whenCreated","employeeID");
$result = ldap_search($ldap,$dn , $filter ,$justthese) or die ("Search failed");$info = ldap_get_entries($ldap, $result);
for ($i=0; $i < $info["count"]; $i++) {
echo "Name: ".$info[$i]["displayname"][0]."<br>\n";
echo "Department: ".$info[$i]["department"][0]."<br>\n";
echo "Title: ".$info[$i]["title"][0]."<br>\n";
echo "EmployeeID: ".$info[$i]["employeeID"][0]."<br>\n";

$date = $info[$i]["whencreated"][0];
// Get the date segments by splitting up the LDAP date
$year = substr($date,0,4);
$month = substr($date,4,2);
$day = substr($date,6,2);
$hour = substr($date,8,2);
$minute = substr($date,10,2);
$second = substr($date,12,2);

// Make the Unix timestamp from the individual parts
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);

// Output the finished timestamp
print "Date Created : ".$month."/".$day."/".$year. "\n";echo "<div class='archievebox'><a href=''>View Details</a></div>";
echo "<hr>";
}
ldap_free_result($result);
ldap_unbind($ldap);
}

}
?>

0

Решение

Ключи (имя-атрибута) в массиве, возвращаемом ldap_get_entries, преобразуются в нижний регистр. Таким образом, нет ключа «employeeID», но «employeeid».

Вы должны увидеть это, когда будете var_dump возвращать массив.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]