2016-05-30 5 views
0

LDAP PHPを使用してActive Directory内のユーザーの従業員IDを取得しようとしています。私はちょうどサーバー上のユーザーのためのVBスクリプトを使用して従業員のIDフィールドを追加し、そこでAD上のemployeeIDを見ることができます。 しかし、同じユーザーの従業員IDを取得しようとすると、残りの属性が表示されているのに対し、表示されません。以下は私のコードです。 私はこれに新しいです。助けていただければ幸いです。LDAP PHPを使用して従業員IDを取得する

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するときにこれを見ることができます。

関連する問題