需要在active-directory中显示用户的信息

时间:2010-03-17 16:15:50

标签: php active-directory ldap

以下代码将在域控制器中搜索用户,但我想显示justthese变量中记下的每个事物的信息:“displayname”,“mail”,“samaccountname”,“sn”,“givenname ”, “部”, “telephonenumber”

$dn = "dc=xxx,dc=xxx";
$justthese = array("displayname","mail","samaccountname","sn","givenname","department","telephonenumber");

$sr=ldap_search($ldapconn, $dn,'SAMAccountName=username', $justthese);

$info = ldap_get_entries($ldapconn, $sr);

echo "<h3>".$info["count"]." entries returned</h3>";

foreach($justthese as $key=>$value){
    print '<p><strong>'.$value.'</strong></p>';
}

它显示$ justthese数组中的每个项目,我想为$ justthese数组中注明的每个事物显示该用户的信息。

现在它输出如下:

显示名称

邮件

Sam帐户

SN

给定名称

telephonenumber

我希望它拥有它右边的实际数据,我知道我对foreach循环做错了,感谢任何帮助。

所以它看起来像这样

displayname Chuck

mail chuck@norris.com

samaccountname chucknorris

sn chuckisthebest

givenname查克诺里斯

部门安全

电话号码555-555-5555

2 个答案:

答案 0 :(得分:1)

假设你的$info只返回一个用户:(虽然你应该遍历用户数组或至少print_r来查看它返回的内容)

foreach($justthese as $key=>$value){
    print '<p><strong>'.$value.' ' . (isset($info[0][$value]) ? $info[0][$value] : 'empty') . '</strong></p>';
}

答案 1 :(得分:0)

你不是简单地循环错误的数组吗?您可能想要通过$ info循环?