PHP LDAP代码检查特定组的成员时出现问题

PHP LDAP代码检查特定组的成员时出现问题,php,active-directory,ldap,Php,Active Directory,Ldap,我在以下代码中遇到问题,应该检查$user是否在AlumniDBusers或AlumniDBmanagers组中 条目[0]数组始终返回空白 有人能看出哪里出了问题吗 谢谢 // Active Directory server define('LDAP_HOST','dc1.college.school.edu'); // Active Directory DN define('LDAP_DN','OU=Alumni Relations,OU=Departments,DC=college,DC

我在以下代码中遇到问题,应该检查$user是否在AlumniDBusers或AlumniDBmanagers组中

条目[0]数组始终返回空白

有人能看出哪里出了问题吗

谢谢

// Active Directory server
define('LDAP_HOST','dc1.college.school.edu');

// Active Directory DN
define('LDAP_DN','OU=Alumni Relations,OU=Departments,DC=college,DC=school,DC=edu');

// Active Directory user group
define('LDAP_USER_GROUP','AlumniDBusers');

// Active Directory manager group
define('LDAP_MANAGER_GROUP','AlumniDBmanagers');

 $ldap = ldap_connect(LDAP_HOST);

 echo "LDAP CONNECTED<br />";

 if($bind = ldap_bind($ldap, $user, $password)) {
  echo "PASS BIND<br />";

  $filter = "(samAccountName=" . $user . ")";
  $attrs = array("memberOf");
  $result = ldap_search($ldap, LDAP_DN, $filter, $attrs);

  $entries = ldap_get_entries($ldap, $result);

  echo "ENTRY RESULTS: ";
  print_r($entries[0]['memberOf']);
  echo "<br />";

  // see if member is in user or manager group
  if (in_array(LDAP_USER_GROUP,$entries[0]['memberOf']) || in_array(LDAP_MANAGER_GROUP,$entries[0]['memberOf']))
  { 
   echo "IN GROUP";
   ldap_unbind($ldap);
  } else {
   echo "NOT IN GROUP";
   ldap_unbind($ldap);
  }

 } else {
  echo "FAIL BIND";
  ldap_unbind($ldap);
 } 
//Active Directory服务器
定义('LDAP_HOST','dc1.college.school.edu');
//Active Directory DN
定义('LDAP_DN','OU=校友关系,OU=系,DC=学院,DC=学校,DC=edu');
//Active Directory用户组
定义('LDAP_用户_组','AlumniDBusers');
//Active Directory管理器组
定义('LDAP_MANAGER_GROUP','AlumniDBmanagers');
$ldap=ldap\u连接(ldap\u主机);
回显“LDAP已连接
”; 如果($bind=ldap_bind($ldap,$user,$password)){ 回显“通过绑定
”; $filter=“(samAccountName=“.$user.””); $attrs=数组(“memberOf”); $result=ldap\u search($ldap,ldap\u DN,$filter,$attrs); $entries=ldap\u get\u条目($ldap,$result); echo“输入结果:”; 打印($entries[0]['memberOf']); 回声“
”; //查看成员是否在用户组或经理组中 if(在_数组中(LDAP _用户_组,$entries[0]['memberOf'])|在_数组中(LDAP _管理器_组,$entries[0]['memberOf'])) { 呼应“分组”; ldap_unbind($ldap); }否则{ 回声“不在组中”; ldap_unbind($ldap); } }否则{ 回应“失败绑定”; ldap_unbind($ldap); }
PHP手册


“在为用户添加/编辑属性时,请记住'memberof'属性是一种特殊情况。memberof属性不是用户架构的可访问属性。”

让它工作起来,我的DN是错误的
代码正确

发布函数ldap_get_entries($ldap,$result);这可能就是问题所在:isldap_get_entries()是phpy的标准函数。您的代码刚刚帮我解决了一个问题,谢谢!谢谢分享代码!工作得很有魅力!如何在组中添加用户?我不是试图添加或编辑用户的属性,只是询问他是哪些组的成员。从谷歌搜索中我可以看出,这是可能的——我一直在尝试获取工作代码。上面的代码来自以下在线文章,但一定是出了问题