2014-09-02 111 views
0

執行LDAP搜索必須在搜索範圍內執行遞歸搜索才能找到其他用戶屬性。就像用戶搜索中的員工搜索和經理搜索一樣。PHP遞歸搜索/ LDAP

這裏是我的代碼:

$id_array = preg_split("/[\s,]+/", $_POST["qlids"]); 
    $ldap_connection = ldap_connect($ldaphost, $ldapport); 
    if($ldap_connection) { 
     $ldap_bind = ldap_bind($ldap_connection,$ldapuser,$ldappswd); 
     if($ldap_bind) { 
      for($i=0; $i<count($id_array); $i++) { 
       if(trim($id_array[$i]) != '') { 

        $ldap_search = ldap_search($ldap_connection, "o=org,c=us", "uniqueid=" . strtolower($id_array[$i])); 
        $ldap_results = ldap_get_entries($ldap_connection, $ldap_search); 

        echo "<tr><td>" . $id_array[$i] . "</td>"; 
        if($ldap_results["count"] > 0) { 
         if(trim($ldap_results[0]["cn"][0]) == '') { 
          echo "<td colspan=\"10\" class=\"rt\"><strong>ID Retired</strong></td>"; 
         } 
         else { 
          echo "<td>" . $ldap_results[0]["cn"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["mail"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["telephonenumber"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["l"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["st"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["co"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["resourceflag"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["businesssubgroupname"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["businessunitname"][0] . "</td>"; 
          echo "<td>" . $ldap_results[0]["businesssubunitname"][0] . "</td>"; 
          //echo "<td>" . $ldap_results[0]["sponsorid"][0] . "</td>"; 
          for ($ii=0; $ii<count($id_array); $ii++) { 
           $managersr=ldap_search($ldap_connection, 'o=org, c=us', "uniqueidentifier=".$ldap_results[0]["sponsorid"][0].""); 
           $managerinfo = ldap_get_entries($ldap_connection, $managersr); 
           echo "<td>" . $managerinfo[$ii]["uniqueid"][0] . "</td>"; 
           echo "<td>" . $managerinfo[$ii]["cn"][0] . "</td>"; 
          } 
          //echo "<td>" . $ldap_results[0]["nickname"][0] . "</td>"; 
         } 
        } 
        else { 
         echo "<td colspan=\"10\" class=\"nf\">Not Found</td>"; 
        } 
        echo "</tr>"; 
       } 
      } 
     } 
     else { 
      echo "<h1>Authentication Failed</h1>"; 
     } 

出於某種原因,我得到注意:未定義抵消:1注意:未定義抵消:2聲明。 我不只是想靜音它,我想修復通知。

請幫忙。

固定。

 for ($ii=0; $ii<count($ldap_results[0]["sponsorid"][0]); $ii++) { 

回答

0

固定。

 for ($ii=0; $ii<count($ldap_results[0]["sponsorid"][0]); $ii++) {