2013-04-25 87 views
1

我正在尝试使用ldap搜索活动目录。我希望能够返回用户的电子邮件地址。如何才能做到这一点?到目前为止,我有以下,但似乎没有发生。搜索电子邮件地址ldap活动目录

我只想根据$ filter中给出的属性返回邮件。 ldap绑定似乎工作正常。

谢谢:)

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Cisco Guest Register</title> 
</head> 

<body> 

<?php 


$ldaprdn = "CN=antwest,OU=Employees,OU=Cisco Users,DC=cisco,DC=com";  
$ldappass = 'Chandler1'; 

// connect to ldap server 
$ldapconn = ldap_connect("ldap://ds.cisco.com:389") 
or die("Could not connect to LDAP server."); 

if ($ldapconn) { 

// binding to ldap server 
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass); 

// verify binding 
if (!$ldapbind) { 
    echo "Connection to LDAP Failed"; 
} 

echo "Connected to LDAP"; 

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3); 
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0); 

$filter="(|(cn=antwest*)(ou=cisco*))"; 

$justthese = array("mail"); 

$sr=ldap_search($ldapconn, $ldaprdn, $filter, $justthese); 

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

echo $info["count"]." entries returned\n"; 

} 
?> 

</body> 

</html> 
+0

大声笑,你在这里滚 - 这是你在同一问题上的第三个问题。我看到你正在慢慢地进步:)顺便说一句'print_r($ info)'给了什么?因为我认为它可能是:'回声计数($信息)' – raidenace 2013-04-25 21:10:44

+0

好密码太... – Sebastien 2014-08-26 19:19:19

回答

0

只打印的电子邮件,如果你的搜索succeded,然后使用此行:

echo $info[0]["mail"][0]; 
1

重要的是要设置 ldap_set_option 以前通话ldap_bind

$ldapconn = ldap_connect("ldap://ds.cisco.com:389"); 

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3); 
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0); 

$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);