2016-06-27 4 views
1

PHP에서 ldap을 사용하여 둘 이상의 속성을 가져 오려고합니다. 클래스를 사용하고 있습니다. 문제는 1 속성을 얻으려고 할 때 - 작동하지만 1 이상을 시도 할 때 실패하고 null을 반환한다는 것입니다. 클래스는 다음과 같다 내부은 PHP에서 ldap을 사용하여 둘 이상의 속성을 가져올 수 없습니다.

$return = $ldap->getAttribute('displayname,mail','cn=Jhon Doe'); 

및 기능 : 여기 내가 함수를 호출하는 방법입니다

public function getAttribute($attr,$filter){ 
     $rObjs = preg_split("/,/",$attr); 

     /* Execute the actual search on the directory */ 
     if($this->ldapResultset = @ldap_search($this->ldapResource, $this->GetldapDomain(), $filter, $rObjs)){ 
      $info = ldap_get_entries($this->ldapResource, $this->ldapResultset); 
     } 
     /* Validate we have a result that matters */ 
     if($info['count'] > 0){ 
      if(@$info[0][$attr]['count'] > 0){ 
       return $info[0][$attr]; 
      }else{ 
       return false; 
      } 
     }else{ 
      return false; 
     } 
    } 

을하지만 내가 할 경우이 :

$return = $ldap->getAttribute('displayname','cn=Jhon Doe'); 

가 노력하고 있습니다.

도움이됩니다.

답변

0

문제는 여기에 있었다 :

if(@$info[0][$attr]['count'] > 0){ 

$ 정보는 연료 소모량이 존재하지 않는 키 "표시 이름, 메일"로 배열 요소를 검색하려고 시도하는 시점에서 정확한 정보

0

있습니다. 따라서이 함수는 "false"를 반환합니다. 함수가 여러 인수를 처리하지 못하는 것 같습니다.

관련 문제